/* Publication loading/error/ready states. Matches theme tokens: #2b5f9f primary, #3A3B40 text, #FFFFFF cards, 24px-ish radius. */
.publication-area{
  --pub-card-h:60rem; --pub-row-gap:4rem; --pub-rows:3;
  --pub-desktop-cols:3; --pub-cols:3; --pub-pad-top:0rem; --pub-pad-x:2.8rem;
  --pub-effective-rows:var(--pub-rows-desktop, 3);
  /* Legacy inline-container rules give newly wrapped divs width:auto.
     Match the original full-width UL instead of its intrinsic card width. */
  position:relative; width:100%!important; min-width:0; flex:0 1 100%; max-width:122.5rem; margin:0 auto;
  min-height:calc(var(--pub-pad-top) + var(--pub-effective-rows, var(--pub-rows)) * var(--pub-card-h) + (var(--pub-effective-rows, var(--pub-rows)) - 1) * var(--pub-row-gap));
}
.publication-area:has(#blog_grid){--pub-pad-top:6.2rem;}
@media (max-width:1100px){.publication-area{--pub-cols:2;--pub-effective-rows:var(--pub-rows-tablet, 3);}}
@media (max-width:720px){.publication-area{--pub-cols:1;--pub-effective-rows:var(--pub-rows-mobile, 3);--pub-pad-x:1.6rem;--pub-row-gap:4.4rem;}}
.publication-area[data-reserved-rows="1"]{--pub-rows:1;}
.publication-area[data-reserved-rows="2"]{--pub-rows:2;}
.publication-area[data-reserved-rows="3"]{--pub-rows:3;}
.publication-area[data-reserved-rows="4"]{--pub-rows:4;}
.publication-area[data-reserved-rows="5"]{--pub-rows:5;}
.publication-area[data-reserved-rows="6"]{--pub-rows:6;}
.publication-area[data-reserved-rows="7"]{--pub-rows:7;}
.publication-area[data-reserved-rows="8"]{--pub-rows:8;}
.publication-area[data-reserved-rows="9"]{--pub-rows:9;}
.publication-area[data-reserved-rows="10"]{--pub-rows:10;}
.publication-area[data-reserved-rows="11"]{--pub-rows:11;}
.publication-area[data-reserved-rows="12"]{--pub-rows:12;}
.publication-area[data-reserved-rows="13"]{--pub-rows:13;}
.publication-area[data-reserved-rows="14"]{--pub-rows:14;}
.publication-area[data-reserved-rows="15"]{--pub-rows:15;}
.publication-area[data-reserved-rows="16"]{--pub-rows:16;}
.publication-area[data-reserved-rows="17"]{--pub-rows:17;}
.publication-area[data-reserved-rows="18"]{--pub-rows:18;}
.publication-area[data-reserved-rows="19"]{--pub-rows:19;}
.publication-area[data-reserved-rows="20"]{--pub-rows:20;}
.publication-area[data-reserved-rows="21"]{--pub-rows:21;}
.publication-area[data-reserved-rows="22"]{--pub-rows:22;}
.publication-area[data-reserved-rows="23"]{--pub-rows:23;}
.publication-area[data-reserved-rows="24"]{--pub-rows:24;}
.publication-area[data-reserved-rows="25"]{--pub-rows:25;}
.publication-area[data-reserved-rows="26"]{--pub-rows:26;}
.publication-area[data-reserved-rows="27"]{--pub-rows:27;}
.publication-area[data-reserved-rows="28"]{--pub-rows:28;}
.publication-area[data-reserved-rows="29"]{--pub-rows:29;}
.publication-area[data-reserved-rows="30"]{--pub-rows:30;}

/* Grids keep their original styles; stay empty while pending */
.publication-area>ul:empty{min-height:0;}
.publication-area[data-publication-state="ready"]:not([data-empty="true"]) .publication-notice{
  position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);
}
.publication-area[data-publication-state="ready"] .publication-notice:focus-within{
  position:relative;width:auto;height:auto;padding:1rem;margin:0;overflow:visible;clip-path:none;
}
.publication-area:has(.blog_recently-list){--pub-card-h:60rem;}
.publication-area[data-publication-state="ready"]:not([data-resolved-from-shell]){min-height:0;}
[hidden]{display:none!important;}
.publication-notice{
  display:flex; flex-direction:column; align-items:flex-start; gap:1.6rem;
  margin:0; padding:3rem 3.2rem; margin-top:var(--pub-pad-top);
  margin-inline:var(--pub-pad-x); border-radius:2.4rem; background:#FFFFFF; color:#3A3B40;
  font-family:'Aptos',sans-serif; font-size:1.8rem; line-height:2.8rem; letter-spacing:-.05rem;
}
.publication-area[data-publication-state="loading"] .publication-notice{
  position:relative; overflow:hidden; min-height:calc(var(--pub-card-h) * .5);
  justify-content:center; color:#3A3B40;
}
.publication-area[data-publication-state="loading"] .publication-notice::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(100deg,transparent 30%,rgba(43,95,159,.09) 50%,transparent 70%);
  transform:translateX(-100%); animation:publication-sheen 1.6s ease-in-out infinite;
}
.publication-area[data-publication-state="error"] .publication-notice{
  min-height:calc(var(--pub-card-h) * .5); justify-content:center; border:.2rem solid #2b5f9f;
}
@keyframes publication-sheen{to{transform:translateX(100%);}}
.publication-retry,.publication-detail-unavailable a,.publication-detail-unavailable button{
  display:inline-flex; align-items:center; min-height:4.4rem; padding:.8rem 2.4rem;
  border:.2rem solid #2b5f9f; border-radius:10rem; background:#2b5f9f; color:#FFFFFF;
  font-family:'Aptos',sans-serif; font-size:1.6rem; font-weight:700; line-height:2.4rem;
  text-decoration:none; cursor:pointer;
}
.publication-retry:hover,.publication-detail-unavailable a:hover{background:#FFFFFF;color:#2b5f9f;}
.publication-retry:focus-visible,.publication-detail-unavailable a:focus-visible,.publication-detail-unavailable button:focus-visible{
  outline:.3rem solid #3A3B40; outline-offset:.3rem; box-shadow:0 0 0 .6rem #FFFFFF;
}
.publication-retry[aria-disabled="true"]{opacity:.7;cursor:progress;}
.publication-detail-unavailable{
  display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:2rem;
  width:100%; max-width:80rem; min-height:50vh; margin:0 auto; padding:8rem 2.8rem;
  color:#3A3B40; font-family:'Aptos',sans-serif;
}
.publication-detail-unavailable h1,.publication-detail-unavailable h2{
  margin:0; font-size:4.2rem; font-weight:400; line-height:1.15; letter-spacing:-.1rem; color:#2b5f9f;
}
.publication-detail-unavailable p{margin:0;font-size:1.8rem;line-height:2.8rem;}
.publication-detail-unavailable .publication-links{display:flex;flex-wrap:wrap;gap:1.2rem;}
@media (max-width:720px){.publication-detail-unavailable{padding:5rem 1.6rem;}.publication-detail-unavailable h1,.publication-detail-unavailable h2{font-size:3.2rem;}}
@media (prefers-reduced-motion:reduce){
  .publication-area[data-publication-state="loading"] .publication-notice::after{animation:none;transform:none;opacity:0;}
}
@media (forced-colors:active){.publication-notice,.publication-retry{border:.2rem solid CanvasText;}}
