
  /* ---------- partner directory ---------- */
  .badge-eyebrow{margin:0 0 22px!important;}
  .badge-eyebrow img{height:46px;width:auto;display:block;}

  .feat{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:44px;
    align-items:center;background:#122a63;border-radius:22px;padding:44px 46px;color:#fff;}
  .feat-tag{font-family:var(--body);font-size:10.5px;font-weight:500;letter-spacing:.09em;
    text-transform:uppercase;color:#8FB4FF;margin:0 0 20px;}
  .feat-logo{display:block;margin:0 0 22px;}
  .feat-logo img{height:30px;width:auto;display:block;filter:brightness(0) invert(1);}
  .feat-txt h2{font-family:var(--display);font-size:31px;font-weight:700;letter-spacing:-.025em;
    line-height:1.16;margin:0;color:#fff;text-wrap:pretty;}
  .feat-txt p{font-size:14.5px;line-height:1.68;color:rgba(248,248,246,.74);margin:16px 0 0;
    text-wrap:pretty;}
  .feat-links{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin:28px 0 0;}
  .feat-links .linkline{color:#8FB4FF;margin:0;}
  .feat-links .btn{background:#4070E0;color:#fff;}
  .feat-links .btn:hover{background:#3560D0;}
  .feat-media video{width:100%;display:block;border-radius:14px;background:#000;aspect-ratio:16/9;
    object-fit:cover;}
  .feat-cap{font-size:12.5px;color:rgba(248,248,246,.5);margin:12px 0 0;}
  @media (max-width:900px){
    .feat{grid-template-columns:1fr;gap:32px;padding:34px 26px;}
    .feat-txt h2{font-size:26px;}
  }

  .pview{margin-left:auto;display:inline-flex;padding:4px;border:1px solid var(--line);border-radius:999px;background:#fff;}
.pview button{display:inline-flex;align-items:center;gap:7px;border:0;background:none;cursor:pointer;padding:8px 14px;border-radius:999px;
  font:600 13.5px var(--body);color:var(--slate);transition:background .16s var(--ease),color .16s var(--ease);}
.pview button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;}
.pview button[aria-pressed="true"]{background:var(--forest);color:#fff;}
#directory[data-view="list"] .pgrid{grid-template-columns:1fr;gap:0;border-top:1px solid var(--line);}
#directory[data-view="list"] .pcard{display:grid;grid-template-columns:150px minmax(150px,220px) minmax(0,1fr) 180px 64px;
  grid-template-areas:"logo name blurb tag visit" "logo role blurb tag visit";column-gap:28px;align-items:center;
  border:0;border-bottom:1px solid var(--line);border-radius:0;padding:20px 8px;box-shadow:none;transform:none;background:transparent;}
#directory[data-view="list"] .pcard:hover{background:var(--panel,#F4F6F4);}
#directory[data-view="list"] .plogo{grid-area:logo;margin:0;height:40px;}
#directory[data-view="list"] .pcard h3{grid-area:name;align-self:end;}
#directory[data-view="list"] .prole{grid-area:role;align-self:start;margin-top:4px;}
#directory[data-view="list"] .pblurb{grid-area:blurb;margin:0;}
#directory[data-view="list"] .pfoot{display:contents;}
#directory[data-view="list"] .pfoot .pchips{grid-area:tag;}
#directory[data-view="list"] .pfoot .pvisit{grid-area:visit;justify-self:end;}
@media (max-width:900px){
  .pview{margin-left:0;}
  #directory[data-view="list"] .pcard{grid-template-columns:110px auto minmax(0,1fr) auto;grid-template-areas:"logo name name name" "logo role role role" "blurb blurb blurb blurb" "type tag . visit";row-gap:4px;column-gap:8px;}
  #directory[data-view="list"] .pblurb{margin-top:10px;}
  #directory[data-view="list"] .pfoot .pchips,#directory[data-view="list"] .pfoot .pvisit{margin-top:10px;}
}
.phero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center;padding-top:40px;}
.phero-grid .hero-copy{margin-top:56px;}
@media (max-width:900px){.phero-grid .hero-copy{margin-top:0;}}
.phero-vis{position:relative;height:460px;}

.pdevs{position:absolute;inset:0;}
.pdv{position:absolute;display:block;animation:pdfloat 7s ease-in-out infinite;animation-delay:var(--d,0s);filter:drop-shadow(0 22px 22px rgba(4,33,15,.16));}
.pdv > img:first-child{width:100%;height:auto;display:block;}
.pfan{position:absolute;transform:translate(-50%,-50%);border-radius:50%;animation:pdspin 3.2s linear infinite;}
.pfan.slow{animation-duration:5s;}
.pled{position:absolute;display:block;border-radius:4px;}
.pled.bat{left:44%;top:21.6%;width:2.9%;height:28%;background:linear-gradient(to top,var(--g) 0%,var(--g) var(--lv,0%),transparent var(--lv,0%));animation:pdfill 6s ease-in-out infinite;}
.pled.chg{left:41.4%;top:11%;width:3.4%;height:7.6%;background:var(--g);animation:pdblink 2.4s ease-in-out infinite;}
.pled.gw{left:18.2%;top:77.6%;width:4.6%;height:4.6%;border-radius:2px;background:var(--g);animation:pdblink 1.6s steps(2,jump-none) infinite;}
@property --lv{syntax:"<percentage>";inherits:false;initial-value:0%;}
@keyframes pdfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes pdspin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes pdfill{0%{--lv:0%}70%,100%{--lv:100%}}
@keyframes pdblink{0%,100%{opacity:.25}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.pdv,.pfan,.pled{animation:none;}.pled.bat{--lv:100%;}}
.phero-3d{position:absolute;inset:0;opacity:0;transition:opacity .6s cubic-bezier(.2,.7,.2,1);}
.phero-3d.is-3d{opacity:1;}
.phero-3d img{width:100%;height:100%;object-fit:cover;}
.phero-3d.is-3d img{display:none;}
.assets3d-cv{position:absolute;inset:0;width:100%;height:100%;display:block;}
.phero-badge{position:absolute;left:50%;top:47%;translate:-50% -50%;z-index:4;padding:10px 14px;border-radius:16px;background:rgba(255,255,255,.82);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(4,33,15,.07);box-shadow:0 16px 34px -20px rgba(4,33,15,.35);
  animation:pfloat 8s cubic-bezier(.2,.7,.2,1) infinite;}
.phero-badge img{height:50px;width:auto;display:block;}
.phero-chips{position:absolute;right:20px;bottom:20px;z-index:3;display:flex;flex-direction:column;align-items:flex-end;gap:10px;max-width:calc(100% - 40px);}
.phero-chip{position:relative;white-space:nowrap;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;font-size:13.5px;font-weight:500;color:var(--ink);
  background:rgba(255,255,255,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(4,33,15,.07);box-shadow:0 14px 30px -20px rgba(4,33,15,.35);}
.phero-chip i{width:7px;height:7px;border-radius:50%;background:var(--g);}
.phero-chip.c1{animation:pfloat 9s cubic-bezier(.2,.7,.2,1) -3s infinite;}
.phero-chip.c2{margin-right:24px;animation:pfloat 10s cubic-bezier(.2,.7,.2,1) -6s infinite;}
@keyframes pfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){.phero-badge,.phero-chip{animation:none;}}
@media (max-width:900px){.phero-grid{grid-template-columns:1fr;gap:32px;padding-top:24px;}.phero-chip{font-size:12.5px;}.phero-vis{height:340px;}}
.pstrip2{margin-top:112px;display:flex;flex-direction:column;gap:14px;}
.pmarq{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);}
.pmt{display:flex;gap:18px;width:max-content;animation:pmarq 70s linear infinite;}
.pmt.rev{animation-direction:reverse;animation-duration:80s;}
.pmarq:hover .pmt{animation-play-state:paused;}
.plp{flex:none;height:64px;padding:0 30px;display:flex;align-items:center;justify-content:center;}
.plp img{max-height:34px;max-width:140px;width:auto;object-fit:contain;filter:grayscale(1);opacity:.7;transition:filter .25s var(--ease),opacity .25s var(--ease);}
.plp:hover img{filter:none;opacity:1;}
@keyframes pmarq{to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.pmt{animation:none;}}
.pcard[hidden],#directory .pcard[hidden],.pcompat[hidden],#pnone[hidden]{display:none !important;}
.feat.grain{isolation:isolate;}
.feat.grain::after{content:"";position:absolute;inset:0;background:url("https://cdn.prod.website-files.com/68d4ff5decdc987146c7f056/6af263c7159f1358d2f6b641_w21-v3-brand-grain.png") 0 0/160px;opacity:.55;mix-blend-mode:overlay;pointer-events:none;z-index:1;border-radius:inherit;}
.feat.grain > *{position:relative;z-index:2;}
.pselects{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;margin:0 0 34px;}
.psel{display:flex;align-items:center;gap:12px;cursor:pointer;}
.psel .pflabel{min-width:0;}
.psel-box{position:relative;display:inline-flex;align-items:center;}
.psel-box select{appearance:none;-webkit-appearance:none;font:600 14px var(--body);color:var(--ink);background:#fff;
  border:1px solid var(--line);border-radius:999px;padding:11px 44px 11px 18px;min-width:230px;cursor:pointer;
  transition:border-color .16s var(--ease),box-shadow .16s var(--ease);}
.psel-box select:hover{border-color:#CFD8D1;}
.psel-box select:focus-visible{outline:none;border-color:var(--g);box-shadow:0 0 0 3px rgba(20,203,98,.18);}
.psel-box select.set{background:var(--forest);border-color:var(--forest);color:#fff;}
.psel-box svg{position:absolute;right:16px;width:16px;height:16px;color:var(--mute);pointer-events:none;}
.psel-box select.set + svg{color:var(--g);}
.psel-box option{color:var(--ink);background:#fff;}
@media (max-width:640px){.psel{width:100%;flex-wrap:wrap;gap:8px;}.psel-box,.psel-box select{width:100%;}}
.pfilter{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 34px;}
  .pfilter button{display:inline-flex;align-items:center;gap:9px;background:#fff;
    border:1px solid var(--line);border-radius:999px;padding:10px 18px;cursor:pointer;
    font:600 13.5px var(--body);color:var(--slate);
    transition:border-color .16s var(--ease),color .16s var(--ease),background .16s var(--ease);}
  .pfilter button:hover{color:var(--ink);border-color:#CFD8D1;}
  .pfilter button b{font-family:var(--body);font-size:11px;font-weight:500;color:var(--mute);}
  .pfilter button[aria-pressed="true"]{background:var(--forest);border-color:var(--forest);color:#fff;}
  .pfilter button[aria-pressed="true"] b{color:var(--g);}

  .pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .pcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
    border-radius:16px;padding:24px 24px 22px;
    transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s var(--ease);}
  .pcard:hover{transform:translateY(-2px);border-color:#D3DAD4;
    box-shadow:0 18px 44px -26px rgba(3,19,3,.30);}
  .pcard[hidden]{display:none;}
  .plogo{min-height:52px;display:flex;align-items:center;margin:0 0 18px;overflow:hidden;}
  .plogo img{max-height:34px;max-width:150px;width:auto;object-fit:contain;display:block;
    filter:grayscale(1) opacity(.66);transition:filter .18s var(--ease);}
  .pcard:hover .plogo img{filter:grayscale(0) opacity(1);}
  /* logos whose source art carries heavy whitespace padding */
  .pcard .plogo img[src$="epexspot.png"]{max-height:112px;}
  .pcard .plogo img[src$="ferranti.png"]{max-height:96px;}
  .pcard .plogo img[src$="viessmann.png"]{max-height:80px;}

  .pcard h3{font-family:var(--display);font-size:17.5px;font-weight:700;letter-spacing:-.018em;
    margin:0;color:var(--ink);}
  .prole{font-family:var(--body);font-size:10.5px;font-weight:500;letter-spacing:.08em;
    text-transform:uppercase;color:var(--mute);margin:7px 0 0;}
  .pblurb{font-size:14px;line-height:1.62;color:var(--slate);margin:13px 0 0;text-wrap:pretty;}
  .pfoot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;
    margin:18px 0 0;padding-top:16px;border-top:1px solid var(--line);}
  .pchips{display:flex;flex-wrap:wrap;gap:6px;margin:0;}
.pfoot .atypes{margin-right:-4px;}
.pfoot .pchips:not(.atypes){margin-right:auto;}
  .pvisit{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;
    color:var(--g-text);text-decoration:none;white-space:nowrap;
    border-bottom:1px solid transparent;transition:border-color .16s var(--ease);}
  .pvisit:hover{border-bottom-color:var(--g);}
  .pvisit svg{flex:none;}
  .pchip{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
    border-radius:999px;padding:5px 10px;}
  .pchip.assets{background:#F2FBF6;color:var(--g-text);}
  .pchip.markets{background:#E9FAF0;color:var(--g-text);}
  .pchip.business{background:#D7F2E2;color:var(--g-text);}
  .pchip.compat{background:#EEF1EC;color:var(--slate);}
  .pword{font-family:var(--display);font-size:19px;font-weight:700;letter-spacing:-.02em;
    color:var(--mute);}
  .pcard:hover .pword{color:var(--ink);}
  .pcompat{margin:44px 0 0;padding-top:34px;border-top:1px solid var(--line);}
  .psub{font-family:var(--body);font-size:11px;font-weight:500;letter-spacing:.09em;
    text-transform:uppercase;color:var(--mute);margin:0 0 20px;}
  .pcompat .plogo img{filter:grayscale(1) opacity(.5);}
  .pcompat .pcard:hover .plogo img{filter:grayscale(1) opacity(.66);}
  .pnone{font-size:15px;color:var(--slate);margin:0;}
  .pnote{font-size:13px;line-height:1.6;color:var(--mute);margin:34px 0 0;max-width:72ch;}


  /* ---------- logo strip ---------- */
  .pstrip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;}
  .pstrip span{display:grid;place-items:center;height:84px;padding:0 18px;border-radius:6px;
    background:#EFEFEC;border:1px solid #E6E7E3;}
  .pstrip img{max-height:26px;max-width:78%;width:auto;object-fit:contain;
    filter:grayscale(1) brightness(.35) opacity(.85);}
  .pstrip img[src$="epexspot.png"]{max-height:64px;}
  .pstrip img[src$="viessmann.png"]{max-height:46px;}

  /* ---------- asset categories ---------- */
  .ptypes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
  .ptype{display:flex;align-items:center;gap:16px;text-align:left;cursor:pointer;
    background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 20px;
    font:inherit;color:inherit;
    transition:border-color .16s var(--ease),box-shadow .16s var(--ease),transform .16s var(--ease);}
  .ptype:hover{border-color:rgba(20,203,98,.5);transform:translateY(-2px);
    box-shadow:0 16px 36px -24px rgba(3,19,3,.32);}
  .ptype .ti{flex:none;width:44px;height:44px;display:grid;place-items:center;color:var(--g-text);}
  .ptype .ti svg{width:30px;height:30px;}
  .ptype b{display:block;font-family:var(--display);font-size:16.5px;font-weight:700;letter-spacing:-.018em;color:var(--ink);}
  .ptype small{display:block;font-family:var(--body);font-size:11px;letter-spacing:.04em;color:var(--mute);margin-top:5px;}
  .ptype .go{margin-left:auto;color:var(--mute);transition:color .16s var(--ease),transform .16s var(--ease);}
  .ptype:hover .go{color:var(--g-text);transform:translateX(2px);}

  /* ---------- benefits ---------- */
  .pben{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));}
  .pben > div{padding:2px 26px;border-left:1px solid var(--line);}
  .pben > div:first-child{padding-left:0;border-left:0;}
  .pben > div:last-child{padding-right:0;}
  .pben h3{font-size:17px;font-weight:700;letter-spacing:-.02em;line-height:1.3;margin:0;color:var(--ink);text-wrap:pretty;}
  .pben p{font-size:14px;line-height:1.62;color:var(--slate);margin:12px 0 0;text-wrap:pretty;}

  /* ---------- announcements ---------- */
  .pnews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
  .pnews a{display:flex;flex-direction:column;text-decoration:none;color:inherit;}
  .pnews .img{aspect-ratio:16/10;border-radius:14px;overflow:hidden;background:var(--forest);}
  .pnews .img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--ease);}
  .pnews a:hover .img img{transform:scale(1.03);}
  .pnews .meta{font-family:var(--body);font-size:10.5px;font-weight:500;letter-spacing:.08em;
    text-transform:uppercase;color:var(--mute);margin:16px 0 0;}
  .pnews h3{font-size:17px;font-weight:700;letter-spacing:-.02em;line-height:1.32;margin:8px 0 0;color:var(--ink);text-wrap:pretty;}
  .pnews a:hover h3{color:var(--g-text);}

  /* ---------- process ---------- */
  .psteps{border-top:1px solid var(--line);}
  .pstep{display:grid;grid-template-columns:64px minmax(0,.42fr) minmax(0,1fr);gap:28px;
    padding:26px 0;border-bottom:1px solid var(--line);align-items:baseline;}
  .pstep .n{font-family:var(--body);font-size:13px;font-weight:500;color:var(--g-text);}
  .pstep h3{font-size:19px;font-weight:700;letter-spacing:-.022em;margin:0;color:var(--ink);}
  .pstep p{font-size:15px;line-height:1.64;color:var(--slate);margin:0;text-wrap:pretty;}

  .ptypefilter{display:none;align-items:center;gap:10px;margin:-18px 0 26px;font-size:14px;color:var(--slate);}
  .ptypefilter[data-on="true"]{display:flex;}
  .ptypefilter button{border:0;background:none;padding:0;cursor:pointer;font:600 13.5px var(--body);
    color:var(--g-text);border-bottom:1px solid rgba(20,203,98,.45);}

  @media (max-width:1024px){
    .pstrip{grid-template-columns:repeat(4,minmax(0,1fr));}
    .ptypes{grid-template-columns:1fr 1fr;}
    .pben{grid-template-columns:1fr 1fr;gap:30px 0;}
    .pben > div:nth-child(odd){padding-left:0;border-left:0;}
    .pnews{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:640px){
    .pstrip{grid-template-columns:repeat(2,minmax(0,1fr));}
    .ptypes,.pnews{grid-template-columns:1fr;}
    .pben{grid-template-columns:1fr;}
    .pben > div{padding:0;border-left:0;}
    .pstep{grid-template-columns:1fr;gap:8px;}
  }

  @media (max-width:1024px){.pgrid{grid-template-columns:1fr 1fr;}}
  @media (max-width:640px){
    .pgrid{grid-template-columns:1fr;}
    .pfilter button{flex:1 1 auto;justify-content:center;}
  }

  /* ---------- new template layer ---------- */
  .pfilter{align-items:center;}
  .pfilter + .ptrow{margin-top:-22px;}
  .pflabel{font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);min-width:104px;}
  .ptrow button[aria-pressed="true"]{background:var(--g);border-color:var(--g);color:var(--forest);}
  .ptrow button[aria-pressed="true"] b{color:var(--forest);}
  .ptrow button[disabled]{opacity:.4;cursor:default;}
  @media (max-width:640px){.pflabel{width:100%;}}
  .pfilter button,.ctas .btn{white-space:nowrap;}
  .feat-logo img{filter:brightness(0) invert(1) !important;opacity:1 !important;}
  .feat-media video{background:#0d1a12 url("https://cdn.prod.website-files.com/68d4ff5decdc987146c7f056/6af263c1c57afdc6faf5255e_w21-featured-dsg-martijn.webp") center/cover no-repeat !important;}
  .pwrap{max-width:1280px;margin:0 auto;padding:0 40px;}
  @media (max-width:640px){.pwrap{padding:0 20px;}}
  .badge-eyebrow img{height:46px;}
  .pstrip{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:22px 46px;margin-top:56px;}
  .pstrip span{display:flex;align-items:center;}
  .pstrip img{height:28px;width:auto;max-width:120px;object-fit:contain;filter:grayscale(1);opacity:.7;transition:filter .25s var(--ease),opacity .25s var(--ease);}
  .pstrip span:hover img{filter:none;opacity:1;}
  .pcard{border-radius:22px !important;}
  .ptype{border-radius:22px !important;}
  .pben > div{border-radius:22px !important;}
  .pcard h3,.pstep h3,.pben h3,.ptype b{font-family:var(--display) !important;font-weight:400 !important;letter-spacing:-.01em !important;}
  .feat{background:linear-gradient(150deg,#0F2457 0%,#1E3F99 58%,#3F6CDF 100%) !important;border-radius:32px !important;padding:52px 52px !important;position:relative;overflow:hidden;}
  .feat-tag{font-family:var(--body) !important;font-size:12.5px !important;letter-spacing:.14em !important;color:#BCD0FF !important;}
  .feat-txt h2{font-family:var(--display) !important;font-weight:300 !important;font-size:clamp(28px,3vw,40px) !important;letter-spacing:-.02em !important;}
  .feat-txt p{color:rgba(255,255,255,.85) !important;font-size:16px !important;}
  .feat-links .btn{background:#fff !important;color:#1E3F99 !important;}
  .feat-links .linkline{color:#BCD0FF !important;}
  .feat-media video{border-radius:20px !important;}
  .pstep .n{display:none !important;}
  .psteps{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:40px !important;border:0 !important;margin-top:44px;}
  .pstep{display:block !important;grid-template-columns:none !important;}
  .pstep p{margin:10px 0 0 !important;}
  .pnews{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
  @media (max-width:900px){.psteps,.pnews{grid-template-columns:minmax(0,1fr) !important;}}
  .pstep .ci{display:block;color:var(--g-deep);margin-bottom:16px;}
  .pstep .ci svg{width:28px;height:28px;}
  .pstep{border:0 !important;background:none !important;padding:0 !important;box-shadow:none !important;}
  .pnews .img{border-radius:20px !important;}
  .pnews h3{font-family:var(--display) !important;font-weight:400 !important;}

/* light panel cards carry no outline, at rest or on hover */
.pcard,.ptype,.pcard:hover,.ptype:hover{border-color:transparent !important;}

/* fanned cluster: rotate + repel ride on the individual properties so the bob keyframes (transform) still run */
.pdevs .pdv{rotate:var(--r,0deg);translate:var(--rx,0px) var(--ry,0px);transition:translate .55s cubic-bezier(.2,.7,.2,1);}
.pdevs .pdv-car{z-index:3;}

/* drag anywhere in the hero: --dx/--dy hold the user's offset, --rx/--ry the magnet push */
.pdevs .pdv{translate:calc(var(--dx,0px) + var(--rx,0px)) calc(var(--dy,0px) + var(--ry,0px));cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;}
.phero-badge{translate:calc(-50% + var(--dx,0px)) calc(-50% + var(--dy,0px));cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;}
.pdevs .pdv img,.phero-badge img{-webkit-user-drag:none;pointer-events:none;}
.pdv.drag,.phero-badge.drag{cursor:grabbing;transition:none;z-index:9;}
.pdv.drag{filter:drop-shadow(0 26px 30px rgba(4,33,15,.22));}

/* "Drag me" follow-cursor over draggable hero objects */
.dragcur{position:fixed;left:0;top:0;z-index:60;pointer-events:none;display:flex;align-items:center;gap:7px;
  padding:7px 12px;border-radius:999px;background:rgba(4,33,15,.88);color:#fff;font:500 13px/1 Inter,sans-serif;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 12px 28px -14px rgba(4,33,15,.5);
  opacity:0;transform:translate(16px,18px) scale(.85);transform-origin:0 0;transition:opacity .14s cubic-bezier(.2,.7,.2,1),transform .14s cubic-bezier(.2,.7,.2,1);}
.dragcur.on{opacity:1;transform:translate(16px,18px) scale(1);}
.dragcur svg{width:16px;height:16px;flex:none;color:var(--g,#14CB62);}


/* asset type chip: second column in list view, beside the operation chip in grid view */
.pchip.atype{background:none;padding-left:0;padding-right:0;color:var(--slate,#5A645E);}
#directory[data-view="list"] .pcard{grid-template-columns:150px minmax(140px,200px) minmax(0,1fr) 170px 170px 64px;
  grid-template-areas:"logo name blurb type tag visit" "logo role blurb type tag visit";}
#directory[data-view="list"] .pfoot .atypes{grid-area:type;}

/* car wheels: each rim is un-squashed to a circle, spun, then squashed back into the wheel's perspective */
.pdv-car{position:absolute;}
.pdv-car .cwheel{position:absolute;display:block;pointer-events:none;}
.pdv-car .cwheel img{position:absolute;left:50%;top:0;height:100%;max-width:none;transform:translateX(-50%) scaleX(var(--k)) rotate(0deg);animation:cwspin 3.2s linear infinite;}
@keyframes cwspin{to{transform:translateX(-50%) scaleX(var(--k)) rotate(-360deg);}}
@media (prefers-reduced-motion:reduce){.pdv-car .cwheel img{animation:none;}}
