
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{--r:#5B3F8C;--a:#7B5FBF;--l:#9B8BB4;--w:#C4B5D8;--g:#E8E0F4;--m:#F4F0FA;--sl:#6B6B7B;--mid:#2C2C3E;--ch:#1A1A2E;--wh:#fff}
html{scroll-behavior:smooth}
body{font-family:'Outfit',sans-serif;color:var(--mid);background:var(--wh);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{text-decoration:none;color:inherit;cursor:pointer}
img{max-width:100%;display:block}
.c{max-width:1200px;margin:0 auto;padding:0 36px}

/* ── PARTICLES CANVAS ── */
#particles{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.4}

/* ── NAV ── */
.nav{position:fixed;top:0;left:0;right:0;z-index:200;background:rgba(26,26,46,.92);backdrop-filter:blur(24px);border-bottom:1px solid rgba(91,63,140,.1);transition:.4s}
.nav.scrolled{box-shadow:0 4px 32px rgba(91,63,140,.12)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:11px;cursor:pointer}
.mono{width:38px;height:38px;background:linear-gradient(135deg,var(--r),var(--a));border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:var(--g);letter-spacing:.5px;box-shadow:0 2px 16px rgba(91,63,140,.35);transition:.3s}
.brand:hover .mono{transform:scale(1.05);box-shadow:0 4px 24px rgba(91,63,140,.45)}
.wm{font-size:21px;letter-spacing:1.5px}
.wm b{font-weight:700;color:var(--g)}
.wm span{font-weight:300;color:var(--l)}
.nl{display:flex;align-items:center;gap:4px;list-style:none}
.nl a{font-size:13px;font-weight:500;color:var(--l);padding:8px 18px;border-radius:7px;transition:.3s;position:relative}
.nl a:hover,.nl a.on{color:var(--g);background:rgba(91,63,140,.12)}
.nl .cta-btn{background:linear-gradient(135deg,var(--r),var(--a))!important;color:var(--wh)!important;padding:10px 26px!important;box-shadow:0 4px 20px rgba(91,63,140,.3);border-radius:8px}
.nl .cta-btn:hover{box-shadow:0 6px 28px rgba(91,63,140,.4);transform:translateY(-1px)}

/* ── REVEAL ANIMATION ── */
html.jsr .rv{opacity:0;transform:translateY(36px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
html.jsr .rv.vis{opacity:1;transform:none}
.rv.d1{transition-delay:.1s}.rv.d2{transition-delay:.2s}.rv.d3{transition-delay:.3s}.rv.d4{transition-delay:.4s}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;gap:8px;padding:15px 36px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:.35s;border:none;font-family:inherit;letter-spacing:.3px}
.btn-p{background:linear-gradient(135deg,var(--r),var(--a));color:var(--wh);box-shadow:0 6px 28px rgba(91,63,140,.3)}
.btn-p:hover{transform:translateY(-3px);box-shadow:0 12px 40px rgba(91,63,140,.35)}
.btn-o{background:transparent;color:var(--g);border:1.5px solid rgba(155,139,180,.25)}
.btn-o:hover{border-color:var(--l);background:rgba(91,63,140,.05)}

/* ── HERO ── */
.hero{position:relative;padding:160px 0 120px;background:var(--ch);overflow:hidden}
.hero-bg{position:absolute;inset:0;background:linear-gradient(135deg,rgba(26,26,46,1) 0%,rgba(91,63,140,.15) 50%,rgba(26,26,46,1) 100%)}
.hero-orb{position:absolute;border-radius:50%;filter:blur(80px);animation:orbFloat 12s ease-in-out infinite}
.hero-orb.o1{width:500px;height:500px;background:rgba(91,63,140,.12);top:-100px;right:-100px;animation-delay:0s}
.hero-orb.o2{width:350px;height:350px;background:rgba(123,95,191,.08);bottom:-50px;left:-80px;animation-delay:-4s}
.hero-orb.o3{width:200px;height:200px;background:rgba(123,95,191,.07);top:50%;left:60%;animation-delay:-8s}
@keyframes orbFloat{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(20px,-30px) scale(1.05)}66%{transform:translate(-15px,20px) scale(.95)}}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(91,63,140,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(91,63,140,.04) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(ellipse at center,black 0%,transparent 70%)}
.hero .c{position:relative;z-index:2}
.hero-badge{display:inline-flex;align-items:center;gap:10px;background:rgba(91,63,140,.1);border:1px solid rgba(91,63,140,.18);border-radius:100px;padding:7px 20px;margin-bottom:28px;backdrop-filter:blur(8px)}
.hero-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--a);box-shadow:0 0 12px var(--a);animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}
.hero-badge span{font-size:11px;font-weight:600;color:var(--w);letter-spacing:2.5px;text-transform:uppercase}
.hero h1{font-size:54px;font-weight:700;line-height:1.06;color:var(--g);margin-bottom:26px;letter-spacing:-.5px;max-width:700px}
.hero h1 em{font-style:normal;background:linear-gradient(135deg,var(--a),var(--w));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero p.sub{font-size:17px;line-height:1.75;color:var(--l);max-width:560px;margin-bottom:40px;font-weight:400}
.hero-btns{display:flex;gap:16px;flex-wrap:wrap}
.hero-line{position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--r),var(--a),transparent)}

/* ── SVG ILLUSTRATIONS ── */
.illus{width:100%;aspect-ratio:4/3;border-radius:20px;position:relative;overflow:hidden;background:linear-gradient(160deg,var(--ch) 0%,rgba(91,63,140,.25) 100%)}
.illus svg{position:absolute;inset:0;width:100%;height:100%}
.illus-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(26,26,46,.6));z-index:1}
.illus-label{position:absolute;bottom:20px;left:20px;z-index:2;font-size:13px;font-weight:600;color:var(--w);letter-spacing:1px;text-transform:uppercase;background:rgba(91,63,140,.3);padding:6px 14px;border-radius:6px;backdrop-filter:blur(8px)}

/* ── SECTIONS ── */
.sec{padding:100px 0;position:relative;z-index:1}
.sec-alt{background:var(--m)}
.sec-dk{background:var(--ch);color:var(--g)}
.lbl{font-size:11px;font-weight:600;color:var(--a);letter-spacing:3px;text-transform:uppercase;margin-bottom:14px}
.sec-dk .lbl{color:var(--w)}
.st{font-size:40px;font-weight:700;line-height:1.1;color:var(--ch);margin-bottom:20px;letter-spacing:-.3px}
.sec-dk .st{color:var(--g)}
.ss{font-size:16px;color:var(--sl);max-width:560px;line-height:1.7;margin-bottom:48px}
.sec-dk .ss{color:var(--l)}

/* ── SERVICE CARDS ── */
.sg{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.sc{background:var(--wh);border:1px solid rgba(91,63,140,.06);border-radius:16px;padding:36px 28px;position:relative;overflow:hidden;transition:.4s;cursor:default}
.sc::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--r),var(--a));transform:scaleX(0);transition:.4s;transform-origin:left}
.sc:hover{transform:translateY(-8px);box-shadow:0 20px 60px rgba(91,63,140,.1);border-color:var(--w)}
.sc:hover::before{transform:scaleX(1)}
.sc-icon{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:20px;font-size:24px;position:relative;overflow:hidden}
.sc-icon::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--m),var(--g));transition:.3s}
.sc:hover .sc-icon::before{background:linear-gradient(135deg,var(--g),var(--w))}
.sc-icon span{position:relative;z-index:1}
.sc h3{font-size:17px;font-weight:600;color:var(--ch);margin-bottom:10px}
.sc p{font-size:14px;color:var(--sl);line-height:1.65}

/* ── STATS ── */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.stat{text-align:center;padding:36px 16px;border-radius:18px;background:rgba(91,63,140,.05);border:1px solid rgba(91,63,140,.08);position:relative;overflow:hidden;transition:.3s}
.stat:hover{background:rgba(91,63,140,.08);transform:translateY(-4px)}
.stat::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:40px;height:3px;background:linear-gradient(90deg,var(--r),var(--a));border-radius:0 0 3px 3px}
.stat h3{font-size:48px;font-weight:800;margin-bottom:8px;background:linear-gradient(135deg,var(--w),var(--g));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.stat p{font-size:13px;color:var(--l);letter-spacing:.5px}

/* ── TWO COL ── */
.tc{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}

/* ── FEATURES ── */
.ft{display:flex;gap:16px;align-items:flex-start;margin-bottom:24px;padding:16px;border-radius:12px;transition:.3s}
.ft:hover{background:var(--m)}
.ft-d{width:44px;min-width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--m),var(--g));position:relative}
.ft-d::after{content:'';width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,var(--r),var(--a))}
.ft h4{font-size:15px;font-weight:600;color:var(--ch);margin-bottom:3px}
.ft p{font-size:14px;color:var(--sl);line-height:1.6}

/* ── QUOTE ── */
.qc{background:linear-gradient(160deg,var(--ch),var(--r));border-radius:24px;padding:52px;position:relative;overflow:hidden}
.qc-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(155,139,180,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(155,139,180,.05) 1px,transparent 1px);background-size:40px 40px}
.qc blockquote{font-size:20px;color:var(--g);line-height:1.65;font-style:italic;position:relative;z-index:1;margin-bottom:24px}
.qc cite{font-size:14px;color:var(--l);font-style:normal;position:relative;z-index:1}

/* ── PAGE HEADER ── */
.ph{position:relative;padding:140px 0 72px;background:var(--ch);overflow:hidden}
.ph .hero-orb.o1{width:400px;height:400px;top:-100px;right:-50px}
.ph .hero-grid{opacity:.5}
.ph::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--r),var(--a),transparent)}
.ph .c{position:relative;z-index:2}
.ph h1{font-size:48px;font-weight:700;color:var(--g);margin-bottom:14px}
.ph p{font-size:17px;color:var(--l);max-width:520px}

/* ── SERVICE DETAIL ── */
.sd{padding:88px 0}
.sd:nth-child(even){background:var(--m)}
.sd-tags{font-size:13px;color:var(--r);font-weight:600;margin-top:20px}

/* ── VALUES ── */
.vg{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.val{padding:32px;background:var(--wh);border-radius:16px;border-left:4px solid var(--a);transition:.35s;position:relative;overflow:hidden}
.val::after{content:'';position:absolute;top:0;right:0;bottom:0;width:0;background:rgba(91,63,140,.02);transition:.35s}
.val:hover{box-shadow:0 12px 40px rgba(91,63,140,.06);transform:translateX(4px)}
.val:hover::after{width:100%}
.val h3{font-size:16px;font-weight:600;color:var(--ch);margin-bottom:6px;position:relative;z-index:1}
.val p{font-size:14px;color:var(--sl);line-height:1.65;position:relative;z-index:1}

/* ── TEAM ── */
.tg{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.tm{text-align:center;border-radius:18px;padding:28px 20px;border:1px solid rgba(91,63,140,.06);transition:.4s;background:var(--wh);position:relative;overflow:hidden}
.tm::before{content:'';position:absolute;top:0;left:0;right:0;height:0;background:linear-gradient(135deg,var(--r),var(--a));transition:.4s;opacity:.06}
.tm:hover{box-shadow:0 16px 48px rgba(91,63,140,.08);transform:translateY(-6px)}
.tm:hover::before{height:100%}
.tm-ph{width:100%;aspect-ratio:1;background:linear-gradient(160deg,var(--ch),var(--r));border-radius:14px;margin-bottom:20px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.tm-ph .hero-grid{opacity:.3}
.tm-ph span{font-size:44px;font-weight:800;color:var(--g);opacity:.08;position:relative;z-index:1}
.tm h3{font-size:16px;font-weight:600;color:var(--ch);margin-bottom:3px;position:relative;z-index:1}
.tm .role{font-size:12px;font-weight:600;color:var(--a);margin-bottom:10px;letter-spacing:.5px;position:relative;z-index:1}
.tm p{font-size:13px;color:var(--sl);line-height:1.6;position:relative;z-index:1}

/* ── CONTACT ── */
.cg{display:grid;grid-template-columns:1fr 1.2fr;gap:56px;align-items:start}
.cd{display:flex;gap:14px;margin-bottom:22px;align-items:flex-start;padding:12px;border-radius:10px;transition:.3s}
.cd:hover{background:var(--m)}
.cd-i{width:48px;min-width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:18px;background:linear-gradient(135deg,var(--m),var(--g));transition:.3s}
.cd:hover .cd-i{background:linear-gradient(135deg,var(--g),var(--w))}
.cd strong{display:block;font-size:11px;font-weight:600;color:var(--a);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:3px}
.cf{background:var(--m);border:1px solid var(--g);border-radius:24px;padding:40px}
.fg{margin-bottom:16px}
.fg label{display:block;font-size:12px;font-weight:600;color:var(--mid);margin-bottom:7px;letter-spacing:.4px}
.fg input,.fg textarea,.fg select{width:100%;padding:14px 18px;border:1.5px solid rgba(91,63,140,.1);border-radius:10px;font:inherit;font-size:15px;outline:none;background:var(--wh);transition:.25s;color:var(--mid)}
.fg input:focus,.fg textarea:focus,.fg select:focus{border-color:var(--r);box-shadow:0 0 0 4px rgba(91,63,140,.06)}
.fg textarea{resize:vertical;min-height:100px}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* ── CTA ── */
.cta{padding:96px 0;background:linear-gradient(160deg,var(--r) 0%,var(--ch) 100%);text-align:center;position:relative;overflow:hidden}
.cta .hero-grid{opacity:.3}
.cta .hero-orb{opacity:.5}
.cta h2{font-size:38px;font-weight:700;color:var(--g);margin-bottom:16px;position:relative;z-index:1}
.cta p{font-size:17px;color:var(--l);margin-bottom:36px;position:relative;z-index:1;max-width:500px;margin-left:auto;margin-right:auto}
.cta .btn{position:relative;z-index:1}

/* ── TRUST BAR ── */
.trust{padding:36px 0;background:var(--wh);border-bottom:1px solid var(--m);position:relative;z-index:1}
.trust-in{display:flex;justify-content:center;gap:48px;opacity:.3;flex-wrap:wrap}
.trust-in span{font-size:11px;font-weight:600;color:var(--sl);letter-spacing:2.5px;text-transform:uppercase;white-space:nowrap}

/* ── FOOTER ── */
.footer{background:var(--ch);padding:68px 0 32px;position:relative;z-index:1}
.fg-grid{display:grid;grid-template-columns:2.5fr 1fr 1fr 1fr;gap:48px;margin-bottom:52px}
.footer h4{font-size:11px;font-weight:600;color:var(--w);letter-spacing:2px;text-transform:uppercase;margin-bottom:18px}
.footer ul{list-style:none}
.footer li{font-size:14px;color:var(--l);margin-bottom:10px;cursor:pointer;transition:.25s}
.footer li:hover{color:var(--g);padding-left:4px}
.fb{border-top:1px solid rgba(155,139,180,.08);padding-top:24px;display:flex;justify-content:space-between;font-size:13px;color:var(--sl)}

/* ── PAGE SYSTEM ── */
.page{display:none}.page.active{display:block}

/* ── COUNTER ANIMATION ── */
@keyframes countUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ── RESPONSIVE ── */
@media(max-width:960px){
  .sg,.stats,.tc,.fg-grid,.cg,.vg,.tg,.fr{grid-template-columns:1fr}
  .hero h1,.ph h1{font-size:34px}
  .st{font-size:30px}
  .nl{display:none}
  .sec,.sd{padding:64px 0}
}
.sc-icon span{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:26px;height:26px}.sc-icon svg{width:26px;height:26px;display:block}.aud{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.aud span{font-size:13px;font-weight:600;color:var(--r);letter-spacing:.3px;background:var(--m);border:1px solid var(--g);border-radius:100px;padding:10px 20px}.cred{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}.cred div{padding:22px 20px;border-radius:14px;background:rgba(91,63,140,.045);border:1px solid rgba(91,63,140,.09)}.cred h4{font-size:15px;font-weight:600;color:var(--ch);margin-bottom:6px}.cred p{font-size:13.5px;color:var(--sl);line-height:1.6}.hero-art{position:absolute;top:50%;right:-40px;transform:translateY(-45%);width:520px;max-width:46vw;opacity:.85;z-index:1;pointer-events:none}@media(max-width:1080px){.hero-art{display:none}}@media(max-width:860px){.cred{grid-template-columns:1fr}}.ctab{width:100%;border-collapse:collapse;margin-top:8px}.ctab tr{border-bottom:1px solid var(--g)}.ctab th{text-align:left;padding:15px 0;font-size:13px;font-weight:600;color:var(--sl);letter-spacing:.4px;width:42%;vertical-align:top}.ctab td{padding:15px 0;font-size:15px;color:var(--ch);font-weight:500}.ctab td em{font-style:normal;color:var(--sl);font-weight:400}@media(max-width:620px){.ctab th,.ctab td{display:block;width:auto;padding:10px 0 0}.ctab td{padding:2px 0 14px}}@media(max-width:960px){.sg>*{grid-column:auto!important}}/* 7.2 tighter vertical rhythm: section gaps 200px -> 144px */.sec{padding:72px 0}@media(max-width:960px){.sec{padding:48px 0}}.navtog{display:none;background:none;border:0;padding:8px;margin-left:8px;cursor:pointer;color:var(--w);border-radius:8px;transition:.25s}.navtog:hover{background:rgba(91,63,140,.18)}.navtog:focus-visible{outline:2px solid var(--a);outline-offset:2px}.navtog svg{width:24px;height:24px;display:block}.navtog path{transition:.25s;transform-origin:center}.nav.open .navtog .l1{transform:translateY(5px) rotate(45deg)}.nav.open .navtog .l2{opacity:0}.nav.open .navtog .l3{transform:translateY(-5px) rotate(-45deg)}@media(max-width:960px){.navtog{display:block}.nl{display:none;position:absolute;top:68px;left:0;right:0;flex-direction:column;align-items:stretch;gap:2px;padding:12px 20px 20px;background:rgba(26,26,46,.98);backdrop-filter:blur(24px);border-bottom:1px solid rgba(91,63,140,.28);box-shadow:0 18px 40px rgba(0,0,0,.35)}.nav.open .nl{display:flex}.nl a{display:block;padding:14px 14px;font-size:15px;border-radius:8px}.nl .cta-btn{text-align:center;margin-top:8px;padding:14px 26px!important}}
/* -- INSIGHTS SECTION -- */
.plist{display:flex;flex-direction:column;gap:14px;margin-top:8px}
.pitem{display:block;padding:28px 30px;background:var(--wh);border:1px solid rgba(91,63,140,.09);border-left:4px solid var(--a);border-radius:14px;transition:.35s}
.pitem:hover{box-shadow:0 14px 44px rgba(91,63,140,.08);transform:translateX(4px);border-left-color:var(--r)}
.pitem .pmeta{font-size:11px;font-weight:600;color:var(--a);letter-spacing:2px;text-transform:uppercase;margin-bottom:9px}
.pitem h3{font-size:20px;font-weight:600;color:var(--ch);margin-bottom:8px;line-height:1.3}
.pitem p{font-size:14.5px;color:var(--sl);line-height:1.65;max-width:720px}
.pitem .pmore{display:inline-block;margin-top:14px;font-size:13px;font-weight:600;color:var(--r)}
.pnote{padding:34px 32px;border-radius:16px;background:var(--m);border:1px solid var(--g)}
.pnote h3{font-size:17px;font-weight:600;color:var(--ch);margin-bottom:8px}
.pnote p{font-size:15px;color:var(--sl);line-height:1.7;max-width:660px}
.pnote a{color:var(--r);font-weight:600}
.stand{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}
.stand div{padding:24px 22px;border-radius:14px;background:rgba(91,63,140,.045);border:1px solid rgba(91,63,140,.09)}
.stand h4{font-size:15px;font-weight:600;color:var(--ch);margin-bottom:6px}
.stand p{font-size:13.5px;color:var(--sl);line-height:1.6}
@media(max-width:860px){.stand{grid-template-columns:1fr}}
/* -- ARTICLE BODY -- */
.abody{max-width:768px}
.abody h2{font-size:26px;font-weight:700;color:var(--ch);margin:46px 0 14px;letter-spacing:-.2px;line-height:1.28}
.abody h3{font-size:19px;font-weight:600;color:var(--ch);margin:30px 0 10px}
.abody p{font-size:16.5px;color:var(--mid);line-height:1.8;margin-bottom:18px}
.abody ul,.abody ol{margin:0 0 20px 22px}
.abody li{font-size:16.5px;color:var(--mid);line-height:1.8;margin-bottom:9px}
.abody strong{font-weight:600;color:var(--ch)}
.abody a{color:var(--r);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.abody a:hover{color:var(--a)}
.summ{font-size:19px;line-height:1.75;color:var(--ch);margin-bottom:24px}
.dblock{display:flex;flex-wrap:wrap;gap:10px 30px;padding:16px 0;border-top:1px solid var(--g);border-bottom:1px solid var(--g);margin-bottom:28px}
.dblock div{font-size:12.5px;color:var(--sl)}
.dblock b{display:block;font-size:10.5px;font-weight:600;color:var(--a);letter-spacing:1.6px;text-transform:uppercase;margin-bottom:3px}
.abox{padding:24px 26px;border-radius:14px;background:var(--m);border-left:4px solid var(--a);margin:28px 0}
.abox h4{font-size:13px;font-weight:600;color:var(--a);letter-spacing:1.4px;text-transform:uppercase;margin-bottom:10px}
.abox p,.abox li{font-size:15px;line-height:1.7;color:var(--sl);margin-bottom:6px}
.terms{width:100%;border-collapse:collapse;margin:14px 0 8px}
.terms tr{border-bottom:1px solid var(--g)}
.terms th{text-align:left;padding:12px 16px 12px 0;font-size:14px;font-weight:600;color:var(--ch);width:30%;vertical-align:top}
.terms td{padding:12px 0;font-size:14.5px;color:var(--sl);line-height:1.6}
.srcs{list-style:none;margin:14px 0 0 0}
.srcs li{font-size:14px;color:var(--sl);line-height:1.65;margin-bottom:12px;padding-left:20px;text-indent:-20px}
.disc{font-size:13.5px;color:var(--sl);line-height:1.7;padding:18px 0;border-top:1px solid var(--g);margin-top:34px}
.aboutb{padding:26px 28px;border-radius:14px;background:rgba(91,63,140,.045);border:1px solid rgba(91,63,140,.09);margin-top:22px}
.aboutb h4{font-size:13px;font-weight:600;color:var(--a);letter-spacing:1.6px;text-transform:uppercase;margin-bottom:10px}
.aboutb p{font-size:14.5px;color:var(--sl);line-height:1.7;margin-bottom:0}
.aboutb a{color:var(--r);font-weight:600}
.revlog{margin-top:30px;padding-top:16px;border-top:1px solid var(--g)}
.revlog h4{font-size:11px;font-weight:600;color:var(--sl);letter-spacing:1.8px;text-transform:uppercase;margin-bottom:10px}
.revlog li{font-size:13px;color:var(--sl);line-height:1.6;margin-bottom:6px}
.byl{font-size:13px;font-weight:600;color:var(--a);letter-spacing:1.4px;text-transform:uppercase;margin-bottom:6px}


/* -- SERIES LIST AND ARTICLE NAVIGATION -- */
.pitem{display:flex;gap:22px;align-items:flex-start}
.pnum{flex:0 0 auto;width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--r),var(--a));color:var(--g);font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:2px}
.pbody{flex:1 1 auto;min-width:0}
.backlink{display:inline-block;font-size:13px;font-weight:600;color:var(--a);letter-spacing:.3px;margin-bottom:18px}
.backlink:hover{color:var(--r)}
.related{margin-top:34px;padding-top:22px;border-top:1px solid var(--g)}
.related h4{font-size:11px;font-weight:600;color:var(--sl);letter-spacing:1.8px;text-transform:uppercase;margin-bottom:14px}
.related ul{list-style:none;margin:0}
.related li{margin-bottom:10px;font-size:15px;line-height:1.55}
.related a{color:var(--r);font-weight:500}
.related a:hover{color:var(--a)}
.related span{color:var(--sl);font-weight:400}
@media(max-width:620px){.pitem{gap:14px}.pnum{width:28px;height:28px;font-size:12.5px}}
.cats{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 40px}
.cats a,.cats span{font-size:13px;font-weight:600;letter-spacing:.2px;padding:9px 18px;border-radius:100px;border:1px solid var(--g);background:var(--m);color:var(--r);white-space:nowrap}
.cats a:hover{background:var(--g);border-color:var(--w)}
.cats .cat-all{background:linear-gradient(135deg,var(--r),var(--a));color:var(--wh);border-color:transparent}
.cats .cat-all:hover{background:linear-gradient(135deg,var(--a),var(--r));border-color:transparent}
.cats .soon{color:var(--sl);background:transparent;font-weight:500;border-style:dashed}
.cats b{font-weight:600}
.catsec{margin-top:8px}
.catsec .lbl{margin-bottom:10px}
/* -- ARTICLE READING LAYOUT -- */
.abody p{text-align:justify;hyphens:auto;-webkit-hyphens:auto}
.abody li{text-align:justify;hyphens:auto;-webkit-hyphens:auto}
.abody .disc,.abody .byl,.abody .srcline,.abody .backlink{text-align:left}
.abody h2,.abody h3{text-align:left}
@media(max-width:700px){.abody p,.abody li{text-align:left;hyphens:manual}}
.inshort{padding:26px 30px;border-radius:14px;background:var(--m);border-left:4px solid var(--a);margin:0 0 32px}
.inshort h4{font-size:11px;font-weight:600;color:var(--a);letter-spacing:1.8px;text-transform:uppercase;margin-bottom:12px}
.inshort ul{list-style:none;margin:0}
.inshort li{font-size:15.5px;line-height:1.65;color:var(--mid);margin:0 0 11px;padding-left:22px;position:relative;text-align:left}
.inshort li:last-child{margin-bottom:0}
.inshort li::before{content:'';position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,var(--r),var(--a))}
.srcline{margin-top:32px;padding-top:20px;border-top:1px solid var(--g);font-size:15px;color:var(--sl)}
.srcline a{color:var(--r);font-weight:600}
.srcgroup{margin-top:36px;padding-top:24px;border-top:1px solid var(--g)}
.srcgroup h2{font-size:19px;font-weight:600;color:var(--ch);margin:0 0 12px;text-align:left}
.srcgroup h2 a{color:var(--ch)}
.srcgroup h2 a:hover{color:var(--r)}
.srcs li{text-align:left}

/* ── FINDER ── */
.finder{margin:0 0 46px;max-width:660px}
.fwrap{display:flex;align-items:center;gap:12px;background:var(--wh);border:1.5px solid var(--g);border-radius:12px;padding:0 16px;transition:.3s}
.fwrap:focus-within{border-color:var(--a);box-shadow:0 6px 26px rgba(91,63,140,.10)}
.fwrap svg{width:19px;height:19px;color:var(--l);flex:0 0 auto}
.fwrap input{flex:1;border:0;outline:0;background:transparent;font-family:inherit;font-size:15px;color:var(--mid);padding:15px 0;min-width:0}
.fwrap input::placeholder{color:var(--l)}
.fwrap input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}
.fwrap button{border:0;background:transparent;font-family:inherit;font-size:23px;line-height:1;color:var(--l);cursor:pointer;padding:2px}
.fwrap button:hover{color:var(--r)}
.fcount{font-size:13px;color:var(--sl);margin:11px 2px 0;min-height:20px}

/* ── THEME CARDS ── */
.thgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start}
.thcard{display:flex;flex-direction:column;background:var(--wh);border:1px solid rgba(91,63,140,.09);border-radius:16px;padding:26px 26px 22px;position:relative;overflow:hidden;transition:.35s}
.thcard::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--r),var(--a));transform:scaleX(0);transform-origin:left;transition:.4s}
.thcard:hover{transform:translateY(-6px);box-shadow:0 18px 52px rgba(91,63,140,.10);border-color:var(--w)}
.thcard:hover::before{transform:scaleX(1)}
.thn{font-size:11px;font-weight:600;color:var(--a);letter-spacing:2.4px;text-transform:uppercase;margin-bottom:11px}
.thcard h3{font-size:19px;font-weight:600;line-height:1.25;margin-bottom:9px}
.thcard h3 a{color:var(--ch)}
.thcard:hover h3 a{color:var(--r)}
.thcard p{font-size:14px;color:var(--sl);line-height:1.6;margin-bottom:17px}
.thcats{display:flex;flex-wrap:wrap;gap:7px}
.thcats a{font-size:11.5px;font-weight:600;color:var(--r);background:var(--m);border:1px solid var(--g);border-radius:100px;padding:5px 11px;transition:.25s}
.thcats a:hover{background:var(--g);border-color:var(--w)}
.thcats i{font-style:normal;color:var(--l);margin-left:3px}

/* ── CATEGORY GROUPS INSIDE A THEME ── */
.thhead{max-width:760px}
.catgrp{margin-top:46px}
.csub{border-top:1px solid rgba(91,63,140,.13);padding-top:27px;margin-bottom:2px;max-width:760px}
.csub h3{font-size:23px;font-weight:600;color:var(--ch);letter-spacing:-.2px;margin-bottom:7px;display:flex;align-items:baseline;gap:11px;flex-wrap:wrap}
.csub .cn{font-size:11px;font-weight:600;color:var(--a);background:var(--m);border:1px solid var(--g);border-radius:100px;padding:3px 10px;letter-spacing:1.4px}
.sec-alt .csub .cn{background:var(--wh)}
.csub p{font-size:14.5px;color:var(--sl);line-height:1.65}
.pitem[hidden],.catgrp[hidden],.thband[hidden],.thgrid[hidden],.toc[hidden]{display:none!important}
/* search in progress: strip the browse furniture so results sit close together */
body.searching #all{padding-bottom:34px}
body.searching .finder{margin-bottom:0}
body.searching .thband{padding:46px 0}
body.searching .thhead .ss,body.searching .csub p,body.searching .csub .cn{display:none}
body.searching .thhead{margin-bottom:4px}
body.searching .csub{padding-top:22px}
body.searching .catgrp{margin-top:30px}
@media(max-width:980px){.thgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.thgrid{grid-template-columns:1fr}.csub h3{font-size:20px}.catgrp{margin-top:36px}}
/* ==== HERO HEADING ==== */
.ph h1{line-height:1.12;letter-spacing:-.4px}
/* ==== END HERO HEADING ==== */
/* ==== INSIGHTS BROWSER ==== */
.ibrowse{margin-top:26px;display:grid;grid-template-columns:302px 1fr;border:1px solid var(--g);border-radius:16px;overflow:hidden;background:var(--wh)}
.iside{background:var(--m);border-right:1px solid var(--g);padding:24px 0}
.igrp{padding:0 20px;margin-bottom:20px}
.igrp>p{font-size:10.5px;font-weight:600;letter-spacing:2.2px;text-transform:uppercase;color:var(--l);margin:0 0 9px}
.icat{display:flex;width:100%;justify-content:space-between;align-items:center;gap:10px;font-size:14px;font-weight:500;
 color:var(--mid);padding:8px 12px;border-radius:8px;transition:.2s;cursor:pointer}
.icat:hover{background:rgba(91,63,140,.07);color:var(--r)}
.icat b{font-size:11px;font-weight:600;color:var(--l)}
.icat.on{background:linear-gradient(135deg,var(--r),var(--a));color:var(--wh)}
.icat.on b{color:rgba(255,255,255,.75)}
.iview{padding:30px 32px 34px;min-width:0}
.cview+.cview{margin-top:44px;padding-top:38px;border-top:1px solid var(--g)}
.cview>.lbl{margin-bottom:10px}
.cview h2{font-size:25px;font-weight:700;color:var(--ch);letter-spacing:-.2px;line-height:1.2;margin-bottom:9px}
.cview>p.cdesc{font-size:15px;color:var(--sl);line-height:1.65;max-width:660px;margin-bottom:24px}
.vlist{display:grid;gap:11px}
.vi{display:flex;gap:16px;align-items:flex-start;border:1px solid rgba(91,63,140,.10);border-radius:12px;padding:16px 19px;transition:.25s}
.vi:hover{border-color:var(--w);background:var(--m);transform:translateX(3px)}
.vi .vn{font-size:11px;font-weight:700;color:var(--w);letter-spacing:1px;margin-top:3px;flex:0 0 auto}
.vi:hover .vn{color:var(--r)}
.vi h3{font-size:16px;font-weight:600;color:var(--ch);line-height:1.3;margin-bottom:4px}
.vi p{font-size:13.5px;color:var(--sl);line-height:1.55}
.inores{font-size:15px;color:var(--sl)}
.vi[hidden],.cview[hidden]{display:none!important}
/* with scripting, one category at a time */
html.jsb .cview{display:none}
html.jsb .cview.on{display:block}
html.jsb .cview.on+.cview.on{margin-top:44px;padding-top:38px;border-top:1px solid var(--g)}
html.jsb body.searching .cview.on{display:block}
@media(max-width:900px){
 .ibrowse{grid-template-columns:1fr}
 .iside{border-right:0;border-bottom:1px solid var(--g);padding:18px 0 6px}
 .igrp{margin-bottom:14px}
 .iview{padding:24px 20px 28px}
 .cview h2{font-size:21px}
}
.cmore{margin:-12px 0 22px;font-size:14px}
.cmore a{color:var(--r);font-weight:600}
.cmore a:hover{color:var(--a)}
.flinks{margin-top:12px;font-size:13.5px;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.flinks a{color:var(--r);font-weight:600}
.flinks span{color:#6F6385}
.isidetog{display:none}
@media(max-width:900px){
 html.jsb .isidetog{display:flex;width:calc(100% - 40px);margin:0 20px 12px;justify-content:space-between;align-items:center;
  font-family:inherit;font-size:14.5px;font-weight:600;color:var(--r);background:var(--wh);border:1.5px solid var(--g);border-radius:10px;padding:12px 14px;cursor:pointer}
 html.jsb .isidetog::after{content:'';width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:-4px 4px 0 0;transition:.2s}
 html.jsb .iside.open .isidetog::after{transform:rotate(-135deg);margin-top:4px}
 html.jsb .iside .icats{display:none}
 html.jsb .iside.open .icats{display:block}
 html.jsb .iside{padding:14px 0 2px}
}
/* ==== END INSIGHTS BROWSER ==== */
/* ==== SITE LAYER, 24 September 2026 ==== */
/* skip link and landmark */
.skip{position:absolute;left:12px;top:-64px;z-index:10000;background:var(--wh);color:var(--r);font-weight:600;font-size:14px;padding:10px 16px;border-radius:8px;box-shadow:0 4px 18px rgba(0,0,0,.18);transition:top .15s}
.skip:focus{top:12px}
main:focus{outline:none}
/* small section labels, now h2 for a correct heading order */
h2.sh{font-size:11px;font-weight:600;letter-spacing:1.8px;text-transform:uppercase;line-height:1.4;text-align:left}
.abody .inshort h2.sh{color:var(--r);margin:0 0 12px}
.abody .related h2.sh{color:var(--sl);margin:0 0 14px}
.footer h2.sh{color:var(--w);letter-spacing:2px;margin:0 0 18px}
/* contrast (WCAG AA 4.5:1 for small text) */
.ph .lbl{color:#A994D9}
.ph .lbl a{color:inherit;text-decoration:underline;text-decoration-color:rgba(169,148,217,.45);text-underline-offset:4px}
.ph .lbl a:hover{color:var(--g)}
.vi .vn{color:#6E5A93}
.igrp>p,.icat b{color:#6F6385}
.fb{color:var(--l)}
.sec-alt .lbl{color:var(--r)}
/* topic pages, topic index and glossary */
.ph p.tdesc{max-width:720px}
.tbody h2,.gbody h2{margin-top:40px}
.tbody .vlist{margin-bottom:8px}
.abody a.vi,.abody a.vi *{text-decoration:none}
.abody .vi h3{margin:0 0 4px;text-align:left}
.abody .vi p{margin:0;font-size:13.5px;line-height:1.55;color:var(--sl);text-align:left;hyphens:manual;-webkit-hyphens:manual}
.abody .tterms a,.abody .gletters a{text-decoration:none}
.abody .tterms a:hover{text-decoration:underline}
.abody .tlist a{text-decoration:none}
.abody .tlist a:hover{text-decoration:underline}
.tterms{line-height:2}
.tterms a,.tlist a,.tnav a{color:var(--r);font-weight:600}
.tterms a:hover,.tlist a:hover,.tnav a:hover{color:var(--a)}
.tterms span,.tnav span{color:#6F6385}
.abody ul.tlist{list-style:none;margin:0 0 8px;display:grid;gap:6px}
.abody ul.tlist li{margin:0}
.tlist span{font-size:13px;color:var(--sl);margin-left:6px}
.tnav{margin-top:34px;font-size:15px}
.gbody .finder{margin-bottom:22px}
.gletters{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.gletters a{display:inline-flex;min-width:36px;height:36px;align-items:center;justify-content:center;border:1px solid var(--g);border-radius:8px;font-weight:600;color:var(--r);font-size:14px}
.gletters a:hover{background:var(--m)}
.gsec h2{scroll-margin-top:90px}
.gbody dl{margin:0}
.gterm{padding:14px 0;border-top:1px solid var(--g);scroll-margin-top:90px}
.gterm:target{background:var(--m);box-shadow:0 0 0 10px var(--m);border-radius:2px}
.gterm dt{font-size:17px;font-weight:600;color:var(--ch);line-height:1.4}
.gterm dd{margin:5px 0 0;font-size:15.5px;color:var(--mid);line-height:1.7}
.gterm dd a{color:var(--r)}
.gfrom{display:block;font-size:13.5px;color:var(--sl);margin-top:2px}
.gterm[hidden],.gsec[hidden],.gnone[hidden]{display:none}
.gnone{font-size:15px;color:var(--sl)}
.rssbox{display:flex;flex-wrap:wrap;gap:10px;align-items:center;border:1.5px solid var(--g);border-radius:12px;padding:12px 14px;margin:0 0 8px}
.rssbox code{flex:1 1 260px;font-size:14.5px;color:var(--ch);word-break:break-all}
.rssbox button{font-family:inherit;font-size:14px;font-weight:600;color:var(--wh);background:var(--r);border:0;border-radius:8px;padding:9px 14px;cursor:pointer}
.rssbox button:hover{background:var(--a)}
.rssstat{min-height:1.2em;font-size:13.5px;color:var(--sl)}
/* reduced motion */
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 html.jsr .rv{opacity:1!important;transform:none!important}
}
/* print */
@media print{
 .nav,.footer,.hero-orb,.hero-grid,.navtog,.skip,.finder,.iside,.backlink,.xrel,.gletters,.flinks,.cmore{display:none!important}
 body{background:#fff!important;color:#000}
 .ph{background:none!important;padding:0 0 12pt!important}
 .ph h1,.ph p,.ph .lbl,.ph .lbl a{color:#000!important}
 html.jsr .rv{opacity:1!important;transform:none!important}
 .sec{padding:0!important}
 .abody{max-width:none}
 .abody p,.abody li,.gterm dd{font-size:11pt;line-height:1.5;color:#000}
 .abody a{color:#000;text-decoration:underline}
 .abody p a[href^="http"]::after,.abody li a[href^="http"]::after{content:" <" attr(href) ">";font-size:8pt;word-break:break-all}
 .inshort{background:none;border:1px solid #999}
 h1,h2,h3,dt{page-break-after:avoid}
 table,.inshort,.gterm{page-break-inside:avoid}
}
/* ==== END SITE LAYER ==== */
