/* Package 11 · wave 2 service pages (layout v5, 24 Sep 2026) */
/* hero */
.w3hero{position:relative;overflow:hidden;padding:clamp(22px,3vh,34px) 0 clamp(20px,3vh,32px)}
.w3crumb{display:flex;gap:8px;font:12px var(--mono);color:var(--faint);margin-bottom:clamp(28px,5vh,56px)}
.w3crumb a{color:var(--dim);text-decoration:none}.w3crumb a:hover{color:var(--ink)}.w3crumb b{color:var(--ink);font-weight:500}
.w3herogrid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr);gap:clamp(28px,4vw,64px);align-items:center}
.w3hero h1{font-size:clamp(30px,3.6vw,48px);line-height:1.06;margin-top:16px;text-wrap:balance}
.w3hero .lede{color:var(--dim);font-size:clamp(16px,1.3vw,18px);max-width:58ch;margin-top:20px;line-height:1.6}
.w3herocta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:28px}
.w3herocta .cta{text-decoration:none}
.w3read{font:12px var(--mono);color:var(--faint);letter-spacing:.06em}
.w3herofig{margin:0;padding:18px 18px 14px;border-radius:22px;background:radial-gradient(120% 90% at 70% 0%,rgba(160,107,255,.10),transparent 60%),linear-gradient(180deg,rgba(22,12,42,.85),rgba(11,6,22,.85));border:1px solid rgba(160,107,255,.18);box-shadow:0 40px 90px -40px rgba(160,107,255,.35)}
.w3figlab{font:500 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--violet);margin:2px 4px 12px}
.w3herofig figcaption,.w3fig figcaption{font-size:13.5px;color:var(--dim);margin:12px 4px 2px;line-height:1.5}
.w3facts{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(34px,5vh,54px);border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.015)}
.w3facts div{padding:16px 20px;display:flex;flex-direction:column;gap:4px}
.w3facts div+div{border-left:1px solid var(--line)}
.w3facts span{font:500 10px var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--faint)}
.w3facts b{font:500 14.5px var(--body);color:var(--ink)}
/* body: centred editorial column; wide elements break out */
.w3prog{position:fixed;top:0;left:0;right:0;height:2px;z-index:120;background:linear-gradient(90deg,#ff7aa2,#a06bff);transform-origin:0 50%;transform:scaleX(0)}
.w3body{padding-top:clamp(10px,2vh,24px);padding-bottom:30px}
.w3main{max-width:1000px;margin:0}
.w3sec>*{max-width:760px;margin-left:0;margin-right:auto}
.w3sec.w3first{padding-top:8px}
.w3sec>.w3fig,.w3sec>.w3tw,.w3sec>.w3ex,.w3sec>.w3cards,.w3sec>.w3signs,.w3sec>.w3trust{max-width:1000px}
.w3trust{display:grid;grid-template-columns:220px 1fr;gap:28px;align-items:start;border:1px solid var(--line2);border-radius:22px;padding:26px;background:radial-gradient(120% 120% at 0% 0%,rgba(160,107,255,.12),transparent 55%),rgba(255,255,255,.015)}
.w3tp{display:flex;flex-direction:column;gap:12px}
.w3tp .ctapic{width:88px;height:88px}
.w3tp b{display:block;font:500 16px var(--disp);color:var(--ink)}
.w3tp em{font-style:normal;font:12px var(--mono);color:var(--faint)}
.w3tt p{color:var(--ink);opacity:.9;font-size:16px;line-height:1.65;margin:12px 0 0}
.w3tt ul{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.w3tt li{font-size:13px;color:var(--dim);border:1px solid var(--line);border-radius:999px;padding:6px 12px}
.w3demo{display:inline-block;margin-top:16px;font:500 13.5px var(--body);color:var(--violet);text-decoration:none;border-bottom:1px solid rgba(160,107,255,.4)}
.w3demo:hover{border-bottom-color:var(--violet)}
.w3upd{display:block;margin-top:14px;font:11px var(--mono);letter-spacing:.06em;color:var(--faint)}
.w3sec{padding:clamp(34px,5vh,52px) 0 0;scroll-margin-top:140px}
.w3sec h2{font-size:clamp(22px,2.3vw,30px);line-height:1.15;margin-top:8px;margin-bottom:0;text-wrap:balance;scroll-margin-top:140px}
.w3eb{font:500 10.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--violet);display:flex;align-items:center;gap:10px}
.w3eb::before{content:"";width:18px;height:1px;background:currentColor;opacity:.8}
.w3eb.pk{color:var(--pink)}
.w3sec>p,.w3intro{color:var(--dim);font-size:16.5px;line-height:1.7;margin-top:16px;margin-bottom:0}
.w3sec>p:first-of-type{margin-top:18px}
.w3prob h2{color:#ffd6e2}
.w3wide{margin-right:clamp(0px,calc((100vw - 1240px) / 2 * 0),0px)}
.w3answer{border-radius:18px;padding:24px 26px;background:linear-gradient(135deg,rgba(160,107,255,.14),rgba(160,107,255,.03) 60%);border:1px solid rgba(160,107,255,.3);position:relative}
.w3q{font:500 17px var(--disp);color:var(--ink);line-height:1.35;margin-bottom:10px}
.w3q span{display:block;font:500 10.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--violet);margin-bottom:8px}
.w3answer p{color:var(--ink);font-size:16.5px;line-height:1.65;margin:0;opacity:.92}
.w3offer{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline;border:1px solid var(--violet);border-radius:14px;padding:16px 20px;background:rgba(160,107,255,.08)}
.w3offer b{font:500 11.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--violet)}
.w3offer span{color:var(--ink);font-size:15px}.w3offer a{color:var(--violet)}
.w3signs{list-style:none;padding:0;margin-top:20px;margin-bottom:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.w3signs li{position:relative;padding:18px 20px 18px 52px;border-radius:16px;background:linear-gradient(180deg,rgba(255,122,162,.06),rgba(255,122,162,.02));border:1px solid rgba(255,122,162,.18);color:var(--ink);font-size:15.5px;line-height:1.5;transition:border-color .25s,transform .25s}
.w3signs li:hover{border-color:rgba(255,122,162,.4);transform:translateY(-1px)}
.w3signs li:last-child:nth-child(odd){grid-column:1/-1}
.w3cards>.w3card:last-child:nth-child(odd){grid-column:1/-1}
.w3signs li::before{content:"\201C";position:absolute;left:18px;top:14px;width:24px;height:24px;border-radius:50%;background:rgba(255,122,162,.12);font:600 20px/30px var(--disp);color:var(--pink);text-align:center}
.w3cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}
.w3card{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,.01));border:1px solid var(--line);border-radius:16px;padding:20px 20px 18px;transition:border-color .25s,transform .25s}
.w3card:hover{border-color:rgba(160,107,255,.4);transform:translateY(-2px)}
.w3ci{font:500 11px var(--mono);color:var(--violet);letter-spacing:.08em}
.w3cardlink{display:block;text-decoration:none}
.w3cardlink i{position:absolute;right:20px;top:24px;width:8px;height:8px;border-right:1.5px solid var(--violet);border-top:1.5px solid var(--violet);transform:rotate(45deg);opacity:.6;transition:opacity .2s,right .25s}
.w3cardlink:hover i{opacity:1;right:16px}
.w3card h3{font:500 16.5px var(--disp);margin:10px 0 6px;color:var(--ink)}
.w3card p{color:var(--dim);font-size:14.5px;line-height:1.6;margin:0}
.w3tick{display:inline-flex;width:22px;height:22px;border-radius:50%;background:rgba(160,107,255,.16);position:relative}
.w3tick::after{content:"";position:absolute;left:7px;top:6px;width:7px;height:4px;border-left:1.8px solid var(--violet);border-bottom:1.8px solid var(--violet);transform:rotate(-45deg)}
.w3fig{margin-top:22px;margin-bottom:0;padding:20px 18px 14px;border-radius:20px;background:linear-gradient(180deg,rgba(20,11,38,.8),rgba(10,5,20,.8));border:1px solid var(--line);overflow-x:auto}
.w3fig svg{min-width:520px}
.w3ex{margin-top:22px;border-radius:20px;border:1px solid var(--line2);background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.008));padding:22px}
.w3extag{display:inline-flex;align-items:center;gap:8px;font:500 10.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);border:1px dashed rgba(255,255,255,.16);border-radius:999px;padding:6px 12px}
.w3exset{color:var(--dim);font-size:15.5px;line-height:1.65;margin:16px 0 0}
.w3exgrid{display:grid;grid-template-columns:1fr 34px 1fr;align-items:stretch;margin-top:18px}
.w3exb,.w3exa{border-radius:14px;padding:16px 18px}
.w3exb{background:rgba(255,122,162,.05);border:1px solid rgba(255,122,162,.24)}
.w3exa{background:rgba(160,107,255,.08);border:1px solid rgba(160,107,255,.35)}
.w3exl{font:500 10.5px var(--mono);letter-spacing:.14em;text-transform:uppercase}
.w3exb .w3exl{color:var(--pink)}.w3exa .w3exl{color:var(--violet)}
.w3exb ul,.w3exa ul{margin:10px 0 0;padding-left:1.05em;color:var(--ink);font-size:14.5px;line-height:1.6}
.w3exb li,.w3exa li{margin:5px 0}
.w3exarrow{position:relative}
.w3exarrow::before{content:"";position:absolute;left:8px;right:10px;top:50%;height:1px;background:linear-gradient(90deg,var(--pink),var(--violet))}
.w3exarrow::after{content:"";position:absolute;right:10px;top:calc(50% - 4px);width:8px;height:8px;border-right:1.5px solid var(--violet);border-top:1.5px solid var(--violet);transform:rotate(45deg)}
.w3exclose{color:var(--ink);font-size:15.5px;line-height:1.65;margin:16px 0 0}
.w3tw{overflow-x:auto;margin-top:22px;border:1px solid var(--line);border-radius:16px}
.w3tab{border-collapse:collapse;width:100%;min-width:600px;font-size:14px}
.w3tab th{text-align:left;font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);background:rgba(255,255,255,.02);padding:14px;border-bottom:1px solid var(--line2);vertical-align:bottom}
.w3tab th.hl{color:var(--violet)}
.w3tab td{padding:13px 14px;border-bottom:1px solid var(--line);color:var(--dim);vertical-align:top;line-height:1.5}
.w3tab td:first-child{color:var(--ink);font-weight:500}
.w3tab td.hl{color:var(--ink);background:rgba(160,107,255,.07)}
.w3tab th.hl{background:rgba(160,107,255,.10)}
.w3tab tr:last-child td{border-bottom:0}
.w3steps{list-style:none;padding:0;margin-top:22px;margin-bottom:0;counter-reset:s;position:relative}
.w3steps::before{content:"";position:absolute;left:15px;top:8px;bottom:8px;width:1px;background:linear-gradient(180deg,var(--violet),rgba(160,107,255,.1))}
.w3steps li{counter-increment:s;position:relative;padding:0 0 22px 52px;display:flex;flex-direction:column;gap:4px}
.w3steps li::before{content:counter(s);position:absolute;left:0;top:-3px;width:31px;height:31px;border-radius:50%;background:#130a24;border:1px solid rgba(160,107,255,.6);font:500 12px/31px var(--mono);color:var(--violet);text-align:center}
.w3steps b{font:500 16.5px var(--disp);color:var(--ink)}
.w3steps span{color:var(--dim);font-size:15px;line-height:1.6}
.w3gl{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;margin-top:18px;margin-bottom:0}
.w3gl div{border-top:1px solid var(--line);padding:14px 0}
.w3gl dt{font:500 15.5px var(--disp);color:var(--ink);margin-bottom:4px}
.w3gl dd{margin:0;color:var(--dim);font-size:14.5px;line-height:1.6}
.w3not{list-style:none;padding:0;margin-top:18px;margin-bottom:0;display:flex;flex-direction:column;gap:8px}
.w3not li{position:relative;padding:12px 16px 12px 40px;border:1px solid var(--line);border-radius:12px;color:var(--dim);font-size:15px;line-height:1.55}
.w3not li::before,.w3not li::after{content:"";position:absolute;left:18px;top:21px;width:10px;height:1.5px;background:var(--faint);transform:rotate(45deg)}
.w3not li::after{transform:rotate(-45deg)}
.w3main .acc{margin-top:20px}
.w3relsec{padding:clamp(40px,6vh,64px) 0 0}
.w3rel{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.w3rel a{position:relative;display:flex;flex-direction:column;gap:4px;text-decoration:none;border:1px solid var(--line);border-radius:16px;padding:18px 44px 18px 18px;background:linear-gradient(180deg,rgba(255,255,255,.025),transparent);transition:border-color .25s,transform .25s}
.w3rel a:hover{border-color:rgba(160,107,255,.45);transform:translateY(-2px)}
.w3rk{font:500 10px var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--faint)}
.w3rel b{color:var(--ink);font:500 16px var(--disp)}
.w3rel a>span:last-of-type{font-size:13.5px;color:var(--dim)}
.w3rel i{position:absolute;right:20px;top:50%;width:8px;height:8px;border-right:1.5px solid var(--violet);border-top:1.5px solid var(--violet);transform:translateY(-50%) rotate(45deg);transition:right .25s}
.w3rel a:hover i{right:16px}
@media (max-width:900px){.w3herogrid{grid-template-columns:1fr}.w3facts{grid-template-columns:1fr 1fr}.w3facts div:nth-child(3){border-left:0}.w3facts div:nth-child(n+3){border-top:1px solid var(--line)}.w3rel{grid-template-columns:1fr}}
@media (max-width:640px){.w3trust{grid-template-columns:1fr}.w3signs,.w3cards,.w3gl{grid-template-columns:1fr}.w3exgrid{grid-template-columns:1fr}.w3exarrow{height:26px}.w3exarrow::before{left:50%;right:auto;top:4px;bottom:4px;width:1px;height:auto}.w3exarrow::after{left:calc(50% - 4px);right:auto;top:auto;bottom:4px;transform:rotate(135deg)}.w2row{grid-template-columns:1fr}.w2row i{display:none}}

/* v5 reading layout: centred column, four numbered parts, calmer type */
.w3main{max-width:880px;margin:0 auto}
.w3sec>*{max-width:100%;margin-left:0;margin-right:0}
.w3sec>h2,.w3sec>p,.w3sec>.w3intro{max-width:720px}
.w3sec{padding-top:clamp(30px,4.2vh,46px)}
.w3sec h2{font-size:clamp(22px,2.2vw,28px);letter-spacing:-.01em}
.w3sec>p,.w3intro{color:#cfc6e4;font-size:17px;line-height:1.75;margin-top:14px}
.w3sec>p.w3lead{color:var(--ink);font-size:18.5px;line-height:1.6;margin-top:16px}
.w3intro{color:#cfc6e4}
.w3card p,.w3gl dd,.w3steps span,.w3not li,.w3tab td{color:#c4bbd9}
.w3chap{display:flex;align-items:center;gap:14px;margin:clamp(56px,8vh,88px) 0 0;padding-top:22px;border-top:1px solid var(--line2);scroll-margin-top:130px}
.w3chap span{font:500 12px var(--mono);letter-spacing:.1em;color:var(--violet);border:1px solid rgba(160,107,255,.45);border-radius:999px;padding:4px 10px}
.w3chap b{font:500 13px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.w3sec.w3first+.w3chap,.w3sec.w3first+.w3sec+.w3chap{margin-top:clamp(40px,6vh,64px)}
.w3meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.w3meta .w3read{min-width:0}
.w3relsec .w3eb,.w3relsec .w3rel{max-width:880px;margin-left:auto;margin-right:auto}
@media (max-width:640px){.w3sec>p.w3lead{font-size:17.5px}.w3sec>p,.w3intro{font-size:16.5px}.w3chap{margin-top:52px}}


.d3{display:block;width:100%;height:auto;overflow:visible}
.d3 .d3-t{font:500 13px var(--body);fill:var(--ink)}
.d3 .d3-ts{font:400 11.5px var(--body);fill:var(--dim)}
.d3 .d3-tm{font:500 10px var(--mono);letter-spacing:.14em;fill:var(--faint);text-transform:uppercase}
.d3 .d3-tmv{font:500 10px var(--mono);letter-spacing:.14em;fill:var(--violet);text-transform:uppercase}
.d3 .d3-tmp{font:500 10px var(--mono);letter-spacing:.14em;fill:var(--pink);text-transform:uppercase}
.d3 .d3-n{fill:#130a24;stroke:rgba(255,255,255,.08);stroke-width:1}
.d3 .d3-np{fill:rgba(255,122,162,.07);stroke:rgba(255,122,162,.42);stroke-width:1}
.d3 .d3-nv{fill:rgba(160,107,255,.10);stroke:rgba(160,107,255,.55);stroke-width:1}
.d3 .d3-nh{stroke:rgba(190,150,255,.9);stroke-width:1.4}
.d3 .d3-nf{fill:none;stroke:rgba(255,255,255,.12);stroke-dasharray:4 5}
.d3 .d3-w{fill:none;stroke-width:1.4;stroke-linecap:round}
.d3 .d3-wp{stroke:rgba(255,122,162,.38)} .d3 .d3-wv{stroke:rgba(160,107,255,.5)} .d3 .d3-wd{stroke:rgba(255,255,255,.08)}
.d3 .d3-gp{fill:var(--pink)} .d3 .d3-gv{fill:var(--violet)} .d3 .d3-gd{fill:rgba(255,255,255,.18)}
.d3 .d3-pt{filter:drop-shadow(0 0 4px currentColor)}
.d3 .d3-ptp{fill:#ff9dbb;color:#ff7aa2} .d3 .d3-ptv{fill:#c9a8ff;color:#a06bff}
.d3 .d3-ring{fill:none;stroke:var(--violet);stroke-width:1;opacity:0;transform-box:fill-box;transform-origin:center;animation:d3ring 3s ease-out infinite}
.d3 .d3-breathe{animation:d3breathe 3.6s ease-in-out infinite}
.d3 .d3-blink{animation:d3blink 4.8s ease-in-out infinite}
.d3 .d3-gy{transform-box:fill-box;transform-origin:bottom;animation:d3gy 3.4s cubic-bezier(.4,0,.2,1) infinite alternate}
.d3 .d3-gx{transform-box:fill-box;transform-origin:left;animation:d3gx 3.4s cubic-bezier(.4,0,.2,1) infinite alternate}
.d3 .d3-draw{stroke-dasharray:600;stroke-dashoffset:600;animation:d3draw 3.6s ease-out infinite alternate}
.d3 .d3-fill{stroke-dasharray:1200;stroke-dashoffset:1200;animation:d3fill 6s ease-in-out infinite}
.d3 .d3-drift{animation:d3drift 5s ease-in-out infinite alternate}
.d3 .d3-x{stroke:var(--pink);stroke-width:1.6;stroke-linecap:round}
.d3 .d3-ck{fill:none;stroke:var(--violet);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@keyframes d3ring{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(1.14)}}
@keyframes d3breathe{0%,100%{opacity:.85}50%{opacity:1}}
@keyframes d3blink{0%,100%{opacity:.4}18%,40%{opacity:1}}
@keyframes d3gy{from{transform:scaleY(.55)}to{transform:scaleY(1)}}
@keyframes d3gx{from{transform:scaleX(.72)}to{transform:scaleX(1)}}
@keyframes d3draw{to{stroke-dashoffset:0}}
@keyframes d3fill{0%{stroke-dashoffset:1200}60%,100%{stroke-dashoffset:0}}
@keyframes d3drift{from{transform:translate(0,0)}to{transform:translate(3px,-4px)}}
@media (prefers-reduced-motion:reduce){.d3 *{animation:none!important;stroke-dashoffset:0!important}.d3 .d3-pt,.d3 .d3-ring{display:none}}

/* Package 11f · hero visuals: clean and quiet */
.w3herofig .hv{display:block;width:100%;height:auto;min-width:0;overflow:visible}
.w3herofig{padding:22px 22px 16px}
.hv text{font-family:var(--body)}
.hv .hv-t{font-size:14px;fill:#efe8fa}
.hv .hv-t.hv-dim{fill:#b3a8cb}
.hv .hv-h{font-family:var(--disp);font-size:16px;font-weight:600;fill:#fff}
.hv .hv-s{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;fill:#8f84aa}
.hv .hv-bar{transform-box:fill-box;transform-origin:50% 100%;animation:hvRise 1s cubic-bezier(.16,1,.3,1) both}
.hv .hv-rise{transform-box:fill-box;transform-origin:50% 100%;animation:hvRise 1.1s cubic-bezier(.16,1,.3,1) both}
.hv .hv-draw{stroke-dasharray:320;stroke-dashoffset:320;animation:hvDraw 1.6s .3s cubic-bezier(.65,0,.35,1) forwards}
.hv .hv-breathe{animation:hvBreathe 5s ease-in-out infinite}
.hv .hv-glow{animation:hvGlow 2.8s ease-in-out infinite}
@keyframes hvRise{from{transform:scaleY(0);opacity:0}to{transform:none;opacity:1}}
@keyframes hvDraw{to{stroke-dashoffset:0}}
@keyframes hvBreathe{0%,100%{opacity:.65}50%{opacity:1}}
@keyframes hvGlow{0%,100%{opacity:.45}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.hv .pt{display:none}.hv *{animation:none!important}.hv .hv-draw{stroke-dashoffset:0}}

/* on the live site the header is fixed (the preview drew it in the flow): clear it */
.w3page .w3hero{padding-top:calc(var(--hdh,92px) + clamp(18px,3.5vh,40px))}
.w3page .w3prog{pointer-events:none}
.w3page .w3hero{overflow-x:clip;overflow-y:visible;z-index:5}
/* small grey labels: #8f84aa reaches WCAG AA (5.2:1 or better) on these grounds; --faint does not (review, 28 Sep) */
.w3crumb,.w3read,.w3facts span,.w3tp em,.w3upd,.w3extag,.w3tab th,.w3rk{color:#8f84aa}
.d3 .d3-tm{fill:#8f84aa}
/* phones: the hero drawing keeps a readable size and scrolls sideways inside its card, like the diagrams below */
@media (max-width:640px){.w3herofig{overflow-x:auto;padding:16px 14px 12px}.w3herofig .hv{min-width:520px}}
