/* Retire every old avatar at first paint, before the 3D bundle executes.
   Repeated classes intentionally outrank legacy state/holiday sprite rules. */
html body .proto-face.proto-face.proto-face,
html body .proto-workspace-avatar.proto-workspace-avatar.proto-workspace-avatar,
html body .ptw-proto-face.ptw-proto-face.ptw-proto-face {
  background:none!important; border:0!important; border-radius:0!important; box-shadow:none!important;
  animation:none!important; transition:none!important; transform:none!important; filter:none!important;
}
html body .proto-face.proto-face.proto-face::before, html body .proto-face.proto-face.proto-face::after,
html body .proto-workspace-avatar.proto-workspace-avatar.proto-workspace-avatar::before, html body .proto-workspace-avatar.proto-workspace-avatar.proto-workspace-avatar::after,
html body .ptw-proto-face.ptw-proto-face.ptw-proto-face::before, html body .ptw-proto-face.ptw-proto-face.ptw-proto-face::after {
  content:none!important; display:none!important; background:none!important; border:0!important;
  box-shadow:none!important; animation:none!important; transform:none!important;
}
html body :is(.proto-face,.proto-workspace-avatar,.ptw-proto-face) :is(.proto-eye,.proto-mouth,.proto-spark),
html body :is(.proto-face,.proto-workspace-avatar,.ptw-proto-face):not(.erp-proto-mount) > * { display:none!important; }
html body :is(.proto-face,.ptw-proto-face):not(.erp-proto-mount) { display:block; position:relative; width:80px!important; height:102px!important; }
html body .proto-workspace-avatar:not(.erp-proto-mount) { display:block; position:relative; width:150px!important; height:182px!important; }
/* A neutral decorative help marker remains if JavaScript is slow or unavailable.
   The existing accessible help button and status text are never replaced. */
html body .proto-face.proto-face:not(.erp-proto-mount)::after,
html body .proto-workspace-avatar.proto-workspace-avatar:not(.erp-proto-mount)::after,
html body .ptw-proto-face.ptw-proto-face:not(.erp-proto-mount)::after {
  content:"✦"!important; display:grid!important; position:absolute; inset:0; place-items:center;
  width:auto; height:auto; color:#35bebd; font:28px/1 system-ui,sans-serif; opacity:1; text-shadow:none;
}
/* Local 3D identity: deliberately wins over every retired sprite rule. */
html body .erp-proto-mount.erp-proto-mount,
html body [data-proto-state] .erp-proto-mount.erp-proto-mount,
html body [data-proto-holiday] .erp-proto-mount.erp-proto-mount {
  display:block!important; position:relative; flex:0 0 auto; width:80px!important; height:102px!important;
  background:none!important; border:0!important; border-radius:0!important; box-shadow:none!important;
  animation:none!important; transition:none!important; transform:none!important; filter:none!important;
  overflow:hidden; isolation:isolate; margin:0!important; touch-action:manipulation;
}
html body .erp-proto-mount.proto-workspace-avatar { width:150px!important; height:182px!important; }
html body .erp-proto-mount.proto-face-small { width:84px!important; height:106px!important; }
html body .erp-proto-mount:before, html body .erp-proto-mount:after,
html body .proto-launcher:before, html body .ptw-proto-launch:before,
html body .proto-orbit { display:none!important; animation:none!important; }
.erp-proto-mount .proto-3d-stage,.erp-proto-mount .proto-3d-canvas,.erp-proto-mount canvas { position:absolute; inset:0; display:block; width:100%!important; height:100%!important; }
.erp-proto-mount .proto-3d-loading { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; text-align:center; color:#35bebd; font-size:10px; padding:4px; }
.erp-proto-mount .proto-3d-loading svg { width:25px; height:25px; }
.erp-proto-mount .proto-3d-fallback-mark { display:grid; place-items:center; width:54px; height:54px; border:1px solid #78f4e8; border-radius:18px; background:linear-gradient(145deg,#0a7080,#06334c); color:#fff; box-shadow:0 8px 22px #00182d66; font-size:24px; font-weight:900; }
.erp-proto-mount .proto-wardrobe-note { position:absolute; bottom:0; left:0; right:0; color:#54c5c8; font-size:10px; text-align:center; }
.proto-companion .proto-launcher,.ptw-proto .ptw-proto-launch { min-height:104px; padding:0 14px 0 2px; }
.proto-companion .proto-nudge { bottom:145px; }
.ptw-proto .ptw-proto-panel { top:144px; }
.erp-proto-toolbar,.erp-proto-play { display:none!important; }
.erp-proto-chat-actions { position:relative; display:flex; align-items:center; gap:7px; flex-wrap:wrap; padding:8px 0 2px; border-top:1px solid color-mix(in srgb,currentColor 14%,transparent); }
.erp-proto-chat-actions button { min-height:34px; padding:6px 11px; border:1px solid #427b88; border-radius:999px; background:#102d40; color:#efffff; cursor:pointer; font-family:inherit; font-size:12px; font-weight:700; line-height:1.2; }
.erp-proto-chat-actions button:hover:not(:disabled),.erp-proto-chat-actions button:focus-visible { background:#1c5364; border-color:#72e4da; }
.erp-proto-chat-actions button:focus-visible { outline:3px solid #76edd3; outline-offset:2px; }
.erp-proto-chat-actions button:disabled { opacity:.48; cursor:default; }
.erp-proto-chat-menu { box-sizing:border-box; position:absolute; z-index:10080; top:calc(100% + 7px); left:0; width:min(480px,calc(100vw - 40px)); padding:12px; border:1px solid #52e0d7a8; border-radius:16px; background:linear-gradient(145deg,#09283bfa,#0d3448fa); box-shadow:0 18px 45px #000b,inset 0 1px #bafff329; color:#efffff; }
.erp-proto-chat-menu[hidden] { display:none!important; }
.erp-proto-chat-menu>strong { display:block; margin-bottom:8px; color:#7cf1df; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.erp-proto-chat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.erp-proto-chat-grid button { min-height:38px; padding:6px 8px; border-radius:10px; white-space:normal; }
.erp-proto-chat-seasonal { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; padding-top:9px; border-top:1px solid #72eadd3d; }
.erp-proto-chat-seasonal[hidden] { display:none!important; }
.erp-proto-toolbar { justify-content:center; gap:6px; padding-top:5px; position:relative; touch-action:manipulation; }
.erp-proto-toolbar button { border:1px solid #427b88; border-radius:20px; background:#102d40; color:#efffff; padding:6px 11px; font-size:12px; min-height:32px; cursor:pointer; font-family:inherit; }
.cx-dock-head { flex-wrap:wrap; }
.cx-dock-head > .proto-dock-identity { flex:1 1 0; min-width:0; }
.cx-dock-head .proto-dock-identity > div { min-width:0; }
.cx-dock-head > .erp-proto-toolbar { flex:1 1 100%; padding-top:0; justify-content:flex-start; }
.cx-dock-head .erp-proto-toolbar button { width:auto; height:auto; min-width:64px; padding:6px 11px; border:1px solid #427b88; }
.erp-proto-play { box-sizing:border-box; position:fixed; z-index:10060; right:18px; bottom:18px; width:min(370px,calc(100vw - 24px)); max-height:calc(100dvh - 30px); overflow:auto; overscroll-behavior:contain; padding:16px; border:1px solid #4c9c9a; border-radius:20px; background:linear-gradient(145deg,#07192d,#123c48); color:#efffff; box-shadow:0 22px 80px #00182766; font:14px/1.4 system-ui,sans-serif; }
.erp-proto-play[hidden],.erp-proto-seasonal[hidden] { display:none!important; }
.erp-proto-play header { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.erp-proto-play header b { font-size:16px; }
.erp-proto-play button,.erp-proto-play select { font:inherit; color:inherit; background:#174553; border:1px solid #467b8f; border-radius:9px; padding:8px; cursor:pointer; min-height:38px; }
.erp-proto-play header button { min-width:36px; font-size:23px; padding:0; }
html body .erp-proto-play .erp-proto-mount.erp-proto-mount { width:100%!important; height:242px!important; background:radial-gradient(ellipse,#23d5d516,transparent 68%)!important; }
.erp-proto-holiday { text-align:center; font-size:12px; color:#a8e7e1; margin:0 0 10px; }
.erp-proto-outfit { display:flex; align-items:center; gap:10px; font-size:12px; margin-bottom:10px; }
.erp-proto-outfit select { flex:1; min-width:0; font-size:12px; }
.erp-proto-tricks { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin-bottom:8px; }
.erp-proto-tricks button { padding:7px 4px; font-size:12px; }
.erp-proto-seasonal { grid-template-columns:repeat(2,minmax(0,1fr)); }
.erp-proto-seasonal button { border-color:#60cabc; background:#195448; }
.erp-proto-play button:disabled { opacity:.45; cursor:default; }
.erp-proto-play button:hover:not(:disabled),.erp-proto-toolbar button:hover { background:#246074; }
.erp-proto-play button:focus-visible,.erp-proto-play select:focus-visible,.erp-proto-toolbar button:focus-visible { outline:3px solid #76edd3; outline-offset:2px; }
.erp-proto-play .erp-proto-pause { font-size:12px; width:100%; }
.erp-proto-play > small { display:block; margin-top:10px; color:#b6ced5; font-size:11px; }
@media(max-width:650px) { .erp-proto-play { right:12px; bottom:12px; padding:12px; } html body .erp-proto-play .erp-proto-mount.erp-proto-mount { height:204px!important; } .proto-companion .proto-launcher { padding:0; } .erp-proto-toolbar { gap:3px; } .erp-proto-toolbar button { font-size:11px; padding:5px 8px; } .cx-proto-hero-identity { flex-wrap:wrap; } .erp-proto-chat-menu { position:fixed; top:max(92px,env(safe-area-inset-top)); left:12px; width:calc(100vw - 24px); max-height:calc(100dvh - 116px); overflow-y:auto; } .erp-proto-chat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(prefers-reduced-motion:reduce) { .erp-proto-mount *, .erp-proto-mount *:before, .erp-proto-mount *:after { animation:none!important; transition:none!important; } }

/* Premium assistant chrome: the character and play control belong together
   in the identity header, while the trick drawer overlays the conversation. */
html body .cx-dock-head {
  min-height:148px!important;
  padding:14px 18px!important;
  flex-wrap:nowrap!important;
}
html body .cx-dock-head .erp-proto-mount.proto-face-small {
  width:88px!important;
  height:108px!important;
}
html body .cx-dock-head h2 { font-size:20px!important; line-height:1.22!important; }
html body .cx-dock-head p { margin-top:3px!important; font-size:12px!important; line-height:1.4!important; }
html body .cx-dock-head .cx-eyebrow { font-size:9px!important; line-height:1.25!important; }
html body .cx-dock-head .erp-proto-chat-actions {
  align-items:flex-start;
  background:transparent;
  border:0;
  display:flex;
  padding:0;
  position:relative;
}
html body .cx-dock-head .erp-proto-chat-trigger {
  align-items:center;
  background:rgba(5,27,44,.22);
  border:1px solid rgba(255,255,255,.42);
  border-radius:999px;
  color:#fff;
  display:inline-flex;
  font-size:11px;
  font-weight:800;
  height:34px;
  min-height:34px;
  padding:0 13px;
  justify-content:center;
  padding:0;
  width:34px;
}
html body .cx-dock-head .erp-proto-chat-trigger:hover:not(:disabled),
html body .cx-dock-head .erp-proto-chat-trigger:focus-visible { background:rgba(5,27,44,.4); border-color:#fff; }
html body .cx-dock-head .erp-proto-chat-menu {
  bottom:auto;
  left:auto;
  right:0;
  top:calc(100% + 8px);
  width:min(280px,calc(100vw - 32px));
  max-height:min(300px,45dvh);
  overflow-y:auto;
}
.erp-proto-chat-grid { grid-template-columns:repeat(4,46px); justify-content:start; }
.erp-proto-chat-grid .erp-proto-move { align-items:center; display:flex; height:42px; justify-content:center; min-height:42px; padding:0; position:relative; width:42px; }
.erp-proto-chat-grid .erp-proto-move > i { font-size:17px; }
.erp-proto-chat-grid .erp-proto-move > span[role="tooltip"] { background:#061b2c; border:1px solid #427b88; border-radius:7px; bottom:calc(100% + 7px); box-shadow:0 8px 20px rgba(0,0,0,.35); color:#fff; font-size:10px; font-weight:700; left:50%; opacity:0; padding:5px 7px; pointer-events:none; position:absolute; transform:translate(-50%,4px); transition:opacity .14s ease,transform .14s ease; white-space:nowrap; z-index:2; }
.erp-proto-chat-grid .erp-proto-move:hover > span[role="tooltip"],.erp-proto-chat-grid .erp-proto-move:focus-visible > span[role="tooltip"] { opacity:1; transform:translate(-50%,0); }
html body .proto-companion .proto-launcher {
  gap:8px;
  height:80px;
  min-height:80px;
  min-width:244px;
  overflow:visible;
  padding:0 10px 0 2px;
}
html body .proto-companion .erp-proto-mount.erp-proto-mount { width:92px!important; height:114px!important; }
html body .proto-companion .proto-launch-label { flex:1 1 auto; min-width:0; }
html body .proto-companion .proto-launch-label b { font-size:15px; }
html body .proto-companion .proto-launch-label small { font-size:11px; }
html body .proto-companion .proto-launch-arrow {
  align-items:center;
  background:rgba(3,28,43,.24);
  border:1px solid rgba(255,255,255,.42);
  border-radius:50%;
  display:flex;
  flex:0 0 38px;
  font-size:15px;
  height:38px;
  justify-content:center;
  transition:transform .16s ease,background .16s ease;
  width:38px;
}
html body .proto-companion .proto-launcher:hover .proto-launch-arrow { background:rgba(3,28,43,.4); transform:translate(2px,-2px); }
@media(max-width:650px) {
  html body .cx-dock-head { min-height:112px!important; padding:10px 11px!important; }
  html body .cx-dock-head .erp-proto-mount.proto-face-small { width:66px!important; height:82px!important; }
  html body .cx-dock-head h2 { font-size:16px!important; }
  html body .cx-dock-head .erp-proto-chat-trigger { font-size:10px; height:31px; min-height:31px; padding:0 10px; }
  html body .cx-dock-head .erp-proto-chat-actions { position:static; }
  html body .cx-dock-head .erp-proto-chat-menu {
    position:absolute;
    top:100%;
    bottom:auto;
    left:10px;
    right:10px;
    width:auto;
    max-height:calc(100dvh - 150px);
  }
  html body .proto-companion .proto-launcher { height:76px; min-width:unset; min-height:76px; padding:0; }
  html body .proto-companion .erp-proto-mount.erp-proto-mount { width:64px!important; height:78px!important; }
  html body .proto-companion .proto-launch-arrow { display:none; }
}

/* Seasonal effects use the same icon grid as the regular character moves. */
.erp-proto-chat-seasonal.erp-proto-chat-grid { display:grid; }
