
#pac-offense-explorer{
  --pac-navy:#0d3960;
  --pac-blue:#135d88;
  --pac-teal:#2d8ca2;
  --pac-light:#eef8fd;
  --pac-ink:#183247;
  --pac-muted:#60788b;
  --pac-line:rgba(13,57,96,.12);
  position:relative;
  max-width:1220px;
  margin:0 auto;
  padding:28px 16px 90px;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--pac-ink);
}
#pac-offense-explorer *{box-sizing:border-box}
#pac-offense-explorer [hidden]{display:none!important}

.pac-aoo__header{text-align:center;max-width:820px;margin:0 auto 20px}
.pac-aoo__title{
  margin:0 0 12px;
  color:var(--pac-navy);
  font-size:clamp(2.5rem,5.6vw,5.2rem);
  line-height:.98;
  letter-spacing:-.055em;
}
.pac-aoo__intro{margin:0 auto;color:var(--pac-muted);font-size:1.05rem;line-height:1.55;max-width:720px}

.pac-aoo__bubble-stage{
  position:relative;
  min-height:650px;
  overflow:hidden;
  border-radius:38px;
  background:
    radial-gradient(circle at 20% 5%,rgba(255,255,255,.98),transparent 28%),
    linear-gradient(180deg,rgba(239,248,253,.82),rgba(250,253,255,.95));
}
.pac-aoo__bubble-layer{position:absolute;inset:0}
.pac-aoo__bubble{
  --size:220px;
  --delay:0s;
  --float-x:10px;
  position:absolute;
  width:var(--size);
  height:var(--size);
  border-radius:50%;
  border:1px solid rgba(255,255,255,.9);
  padding:24px;
  cursor:pointer;
  color:var(--pac-navy);
  background:
    radial-gradient(circle at 31% 20%,rgba(255,255,255,.98),rgba(222,241,252,.88) 40%,rgba(178,218,241,.54));
  box-shadow:
    inset 0 0 34px rgba(255,255,255,.98),
    0 20px 42px rgba(18,83,123,.16);
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  transition:transform .22s ease,opacity .22s ease,filter .22s ease;
  animation:pacFloat 5.8s ease-in-out var(--delay) infinite alternate;
  will-change:transform;
}
.pac-aoo__bubble:hover,.pac-aoo__bubble:focus{
  outline:3px solid rgba(19,93,136,.15);
  filter:brightness(1.03);
  transform:scale(1.035);
}
.pac-aoo__bubble.is-popping{
  animation:pacPop .34s cubic-bezier(.2,.8,.2,1) forwards!important;
  pointer-events:none;
}
.pac-aoo__bubble.is-born{
  animation:pacBorn .45s cubic-bezier(.2,.9,.2,1) both, pacFloat 5.8s ease-in-out .46s infinite alternate;
}
.pac-aoo__portrait{
  width:78px;height:78px;border-radius:50%;
  object-fit:cover;
  margin-bottom:10px;
  border:3px solid rgba(255,255,255,.9);
  box-shadow:0 5px 18px rgba(20,74,111,.18);
}
.pac-aoo__bubble-title{font-size:1.03rem;font-weight:800;line-height:1.14;max-width:170px}
.pac-aoo__bubble-desc{font-size:.78rem;line-height:1.35;color:#54738a;margin-top:7px;max-width:175px}
.pac-aoo__bubble-count{font-size:.72rem;font-weight:700;color:#2f6b91;margin-top:9px}
.pac-aoo__secondary .pac-aoo__bubble-title{font-size:.97rem}
.pac-aoo__secondary .pac-aoo__bubble-desc{display:none}

.pac-aoo__secondary-heading{
  margin:20px auto 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 20px;
  border-radius:22px;
  background:rgba(255,255,255,.9);
  box-shadow:0 12px 30px rgba(18,83,123,.08);
  border:1px solid var(--pac-line);
}
.pac-aoo__eyebrow{margin:0 0 4px;color:var(--pac-blue);text-transform:uppercase;letter-spacing:.1em;font-size:.73rem;font-weight:800}
.pac-aoo__selected-family{margin:0;color:var(--pac-navy);font-size:1.35rem}
.pac-aoo__selected-description{margin:4px 0 0;color:var(--pac-muted);font-size:.9rem}
.pac-aoo__back,.pac-aoo__back-to-secondary{
  border:1px solid var(--pac-line);
  border-radius:999px;
  background:#fff;
  color:var(--pac-navy);
  padding:9px 14px;
  cursor:pointer;
}

.pac-aoo__results{margin-top:22px}
.pac-aoo__results-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}
.pac-aoo__search-wrap{min-width:250px}
.pac-aoo__search-wrap label{display:block;font-size:.74rem;font-weight:700;color:var(--pac-muted);margin-bottom:5px}
#pac-aoo-search{width:100%;border:1px solid var(--pac-line);border-radius:12px;background:#fff;padding:10px 12px}
.pac-aoo__prompt{
  margin:15px 0 16px;
  padding:14px 16px;
  border-left:4px solid var(--pac-teal);
  background:rgba(238,248,253,.9);
  color:#4d697d;
  line-height:1.5;
}
.pac-aoo__count{color:var(--pac-muted);font-size:.87rem;margin:0 0 12px}
.pac-aoo__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.pac-aoo__card{
  border:1px solid var(--pac-line);
  border-radius:18px;
  padding:17px;
  background:#fff;
  box-shadow:0 10px 26px rgba(18,83,123,.07);
}
.pac-aoo__card-cat{margin:0 0 5px;color:var(--pac-blue);font-size:.69rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.pac-aoo__card h4{margin:0 0 8px;color:var(--pac-navy);font-size:1.07rem}
.pac-aoo__card p{margin:0 0 11px;color:#496273;font-size:.91rem;line-height:1.45}
.pac-aoo__tag{display:inline-block;padding:5px 8px;border-radius:999px;background:var(--pac-light);color:#46708c;font-size:.71rem}
.pac-aoo__compare-add{margin-top:10px;border:1px solid var(--pac-line);border-radius:10px;background:#fff;padding:7px 10px;cursor:pointer}

.pac-aoo__compare-bar{
  position:fixed;left:50%;bottom:18px;transform:translateX(-50%);
  z-index:9998;width:min(940px,calc(100% - 28px));
  background:rgba(13,57,96,.97);color:#fff;
  border-radius:18px;padding:13px 16px;
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  box-shadow:0 18px 48px rgba(0,0,0,.25);
}
.pac-aoo__compare-names{display:block;font-size:.84rem;opacity:.78;margin-top:2px}
.pac-aoo__compare-actions{display:flex;gap:8px}
.pac-aoo__compare-actions button{border:1px solid rgba(255,255,255,.25);border-radius:10px;padding:9px 12px;cursor:pointer}
.pac-aoo__compare-open{background:#2e789e;color:#fff}
.pac-aoo__compare-clear{background:#fff;color:var(--pac-navy)}

.pac-aoo__modal{position:fixed;inset:0;z-index:9999;padding:20px;background:rgba(13,28,39,.54);display:grid;place-items:center}
.pac-aoo__modal-card{position:relative;width:min(980px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:24px;padding:26px;box-shadow:0 30px 90px rgba(0,0,0,.28)}
.pac-aoo__modal-close{position:absolute;right:15px;top:15px;border:0;border-radius:50%;width:40px;height:40px;cursor:pointer;font-size:1.5rem;background:#eef2f4}
.pac-aoo__questions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0 20px}
.pac-aoo__questions p{margin:0;padding:14px;border-radius:14px;background:var(--pac-light);color:#486779;font-size:.9rem;line-height:1.45}
.pac-aoo__compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}

@keyframes pacFloat{
  0%{translate:0 0}
  100%{translate:var(--float-x) -12px}
}
@keyframes pacPop{
  0%{transform:scale(1);opacity:1}
  55%{transform:scale(1.14);opacity:.92}
  100%{transform:scale(.08);opacity:0}
}
@keyframes pacBorn{
  0%{transform:scale(.08);opacity:0}
  70%{transform:scale(1.08);opacity:1}
  100%{transform:scale(1);opacity:1}
}
@media(max-width:900px){
  .pac-aoo__bubble-stage{min-height:930px}
  .pac-aoo__cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pac-aoo__secondary-heading,.pac-aoo__results-head{align-items:flex-start;flex-direction:column}
}
@media(max-width:600px){
  .pac-aoo__bubble-stage{min-height:1220px}
  .pac-aoo__cards{grid-template-columns:1fr}
  .pac-aoo__compare-bar{align-items:flex-start;flex-direction:column}
  .pac-aoo__bubble{--size:180px;padding:18px}
  .pac-aoo__portrait{width:62px;height:62px}
}
@media(prefers-reduced-motion:reduce){
  .pac-aoo__bubble{animation:none!important}
  .pac-aoo__bubble.is-popping{opacity:0}
}


/* V3.1 comparison evidence */
.pac-aoo__analysis {
  margin-top:13px;
  padding-top:13px;
  border-top:1px solid var(--pac-line);
}
.pac-aoo__analysis-title {
  margin:0 0 7px;
  color:var(--pac-navy);
  font-size:.76rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.pac-aoo__strategy-list {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:0 0 12px;
}
.pac-aoo__strategy {
  display:inline-block;
  padding:5px 8px;
  border-radius:999px;
  background:#dff1f7;
  color:#185a78;
  font-size:.72rem;
  font-weight:800;
}
.pac-aoo__excerpt {
  margin:7px 0!important;
  padding:9px 10px;
  border-left:3px solid var(--pac-teal);
  border-radius:0 9px 9px 0;
  background:#f5fbfd;
  color:#405f73!important;
  font-size:.84rem!important;
  line-height:1.4!important;
}
.pac-aoo__source-link {
  display:inline-block;
  margin-top:8px;
  color:var(--pac-blue);
  font-size:.78rem;
  font-weight:700;
  text-decoration:none;
}
.pac-aoo__analysis-status {
  color:var(--pac-muted)!important;
  font-size:.82rem!important;
  font-style:italic;
}
.pac-aoo__compare-grid .pac-aoo__card {
  min-width:0;
}


/* V3.1.20 strategy-matched evidence */
.pac-aoo__evidence-block {
  margin:8px 0 12px;
}
.pac-aoo__evidence-strategy {
  display:inline-block;
  margin-bottom:6px;
  padding:4px 8px;
  border-radius:999px;
  background:#dff1f7;
  color:#185a78;
  font-size:.7rem;
  font-weight:800;
}
.pac-aoo__evidence-block .pac-aoo__excerpt {
  margin-top:0!important;
}


/* V3.1.20 secondary offense constellation */
.pac-aoo__breadcrumb {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin:8px auto 14px;
  color:var(--pac-muted);
  font-size:.84rem;
}
.pac-aoo__crumb-home {
  border:0;
  background:transparent;
  padding:0;
  color:var(--pac-blue);
  font-weight:800;
  cursor:pointer;
}
.pac-aoo__crumb-home:hover,
.pac-aoo__crumb-home:focus {
  text-decoration:underline;
}

.pac-aoo__secondary-heading {
  margin-top:10px;
}

.pac-aoo__secondary-layer .pac-aoo__bubble {
  background:
    radial-gradient(circle at 30% 20%, rgba(255,255,255,.99), rgba(210,236,249,.94) 42%, rgba(137,197,229,.68));
  border:1px solid rgba(255,255,255,.95);
  box-shadow:
    inset 0 0 34px rgba(255,255,255,.96),
    0 18px 44px rgba(20,91,135,.20),
    0 0 0 1px rgba(19,93,136,.035);
}
.pac-aoo__secondary-layer .pac-aoo__bubble:hover,
.pac-aoo__secondary-layer .pac-aoo__bubble:focus {
  transform:scale(1.05);
  box-shadow:
    inset 0 0 38px rgba(255,255,255,1),
    0 24px 54px rgba(20,91,135,.24),
    0 0 0 4px rgba(45,140,162,.10);
}
.pac-aoo__secondary-layer .pac-aoo__bubble-title {
  font-size:clamp(.98rem,1.45vw,1.2rem);
  max-width:78%;
  line-height:1.08;
}
.pac-aoo__secondary-layer .pac-aoo__bubble-count {
  margin-top:10px;
  padding:4px 9px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  color:var(--pac-blue);
  font-size:.72rem;
  box-shadow:inset 0 0 0 1px rgba(19,93,136,.06);
}

/* Fan new bubbles outward from the popped parent instead of simply fading in. */
.pac-aoo__secondary-layer .pac-aoo__bubble.is-born {
  animation:
    pacConstellationBorn .58s cubic-bezier(.16,.9,.2,1) both,
    pacFloat 6.2s ease-in-out .62s infinite alternate;
}

@keyframes pacConstellationBorn {
  0% {
    transform:translate(var(--origin-x,0),var(--origin-y,0)) scale(.08);
    opacity:0;
    filter:blur(3px);
  }
  70% {
    transform:translate(0,0) scale(1.06);
    opacity:1;
    filter:blur(0);
  }
  100% {
    transform:translate(0,0) scale(1);
    opacity:1;
  }
}

/* Adaptive stage: JS now sets a smaller min-height based on the number of subtypes. */
.pac-aoo__bubble-stage {
  transition:min-height .28s ease;
}

/* Give sparse secondary screens a more deliberate, compact feel. */
.pac-aoo__secondary-layer {
  max-width:1080px;
  margin:0 auto;
}

/* Slightly stronger PAC-blue ambient wash on the secondary screen. */
.pac-aoo__bubble-stage:has(.pac-aoo__secondary-layer:not([hidden])) {
  background:
    radial-gradient(circle at 18% 8%,rgba(255,255,255,.99),transparent 28%),
    radial-gradient(circle at 75% 22%,rgba(196,230,246,.24),transparent 34%),
    linear-gradient(180deg,rgba(232,246,253,.9),rgba(250,253,255,.97));
}

@media(max-width:900px){
  .pac-aoo__secondary-layer .pac-aoo__bubble {
    --size:170px;
  }
}
@media(max-width:600px){
  .pac-aoo__breadcrumb {
    justify-content:flex-start;
    padding-left:8px;
    flex-wrap:wrap;
  }
}


/* V3.1.20 — bring the main category screen into the same constellation system */
.pac-aoo__main-layer .pac-aoo__bubble {
  background:
    radial-gradient(circle at 30% 20%,
      rgba(255,255,255,.99),
      rgba(210,236,249,.94) 42%,
      rgba(137,197,229,.68));
  border:1px solid rgba(255,255,255,.95);
  box-shadow:
    inset 0 0 36px rgba(255,255,255,.97),
    0 20px 46px rgba(20,91,135,.20),
    0 0 0 1px rgba(19,93,136,.035);
}

.pac-aoo__main-layer .pac-aoo__bubble:hover,
.pac-aoo__main-layer .pac-aoo__bubble:focus {
  transform:scale(1.045);
  box-shadow:
    inset 0 0 40px rgba(255,255,255,1),
    0 26px 58px rgba(20,91,135,.25),
    0 0 0 4px rgba(45,140,162,.10);
}

.pac-aoo__main-layer .pac-aoo__bubble-title {
  font-size:clamp(1rem,1.45vw,1.22rem);
  max-width:80%;
  line-height:1.08;
}

.pac-aoo__main-layer .pac-aoo__bubble-desc {
  font-size:.79rem;
  line-height:1.32;
  max-width:78%;
  color:#53738a;
}

.pac-aoo__main-layer .pac-aoo__bubble-count {
  margin-top:10px;
  padding:4px 9px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  color:var(--pac-blue);
  font-size:.72rem;
  font-weight:800;
  box-shadow:inset 0 0 0 1px rgba(19,93,136,.06);
}

.pac-aoo__main-layer .pac-aoo__portrait {
  width:var(--portrait-size,78px);
  height:var(--portrait-size,78px);
  transition:width .2s ease,height .2s ease,transform .2s ease;
}

.pac-aoo__main-layer .pac-aoo__bubble:hover .pac-aoo__portrait,
.pac-aoo__main-layer .pac-aoo__bubble:focus .pac-aoo__portrait {
  transform:scale(1.035);
}

/* Main constellation float timings are already independently varied in JS. */
.pac-aoo__main-layer .pac-aoo__bubble {
  animation-duration:6.2s;
}

/* Breadcrumb must never occupy layout space while hidden. */
.pac-aoo__breadcrumb[hidden] {
  display:none !important;
}
