/* Approved equal-card layout. Scoped to the hub, including its interactions. */
/* Explicit user preference: retain motion even when the OS requests reduced motion. */
body.hub-editorial .tool-card,body.hub-editorial .hub-category-link,body.hub-editorial .card-link::after{transition-duration:.22s!important}
body.hub-editorial main.portal-page{width:min(1280px,calc(100% - 80px));padding-top:28px}
body.hub-editorial .ui-hero{padding:30px 0 28px;margin-bottom:0;border-bottom:1px solid var(--line-strong)}
body.hub-editorial .ui-hero>.eyebrow{display:none}
body.hub-editorial .hub-intro{display:block}
body.hub-editorial .hub-intro h1{max-width:none;font-family:inherit;font-size:clamp(28px,3.2vw,44px);font-weight:700;letter-spacing:-.055em;line-height:1.4}
body.hub-editorial .hub-intro .hero-description{max-width:none;margin:8px 0 0;font-size:13px}
.hub-workspace{display:grid;grid-template-columns:205px minmax(0,1fr);gap:34px;padding:32px 0 42px;min-height:470px}
.hub-index{border-right:1px solid var(--line);padding-right:20px;min-width:0}
.hub-index-label{margin:0 0 16px;font-size:10px;color:var(--muted);letter-spacing:.12em}
.hub-category-list{display:grid;gap:5px;position:sticky;top:24px}
.hub-category-link{display:flex;align-items:center;gap:12px;padding:8px 9px;border-left:2px solid transparent;font-size:13px;color:var(--paper-ink);text-decoration:none;transition:color .2s,background .2s,transform .2s}
.hub-category-number{font-family:inherit;font-size:10px;color:var(--muted)}
.hub-category-link[aria-current]{background:#ece1d2;border-left-color:var(--vermilion);color:var(--vermilion)}
.hub-category-link[aria-current] .hub-category-number{color:var(--vermilion)}
.hub-category-link:hover{background:#eae4d7;transform:translateX(3px)}
body.hub-editorial .portal-groups>.section{border:0;overflow:visible}
body.hub-editorial .portal-groups .section-heading{padding:0 0 25px;min-height:0;align-items:start;cursor:default}
body.hub-editorial .portal-groups .section-heading::before,body.hub-editorial .portal-groups .section-heading::after,body.hub-editorial .portal-groups .group-icon{display:none}
body.hub-editorial .portal-groups .section-heading:hover{background:transparent}
body.hub-editorial .portal-groups .section-heading h2{font-family:inherit;font-size:29px;font-weight:700;margin:0 0 9px}
body.hub-editorial .group-count{margin-top:10px;font-size:11px}
body.hub-editorial .card-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:19px;padding:8px 0 0;align-items:stretch}
body.hub-editorial .tool-card{--card-color:var(--vermilion)!important;min-height:282px;margin:0;padding:25px 20px 20px;border:1px solid #a9a192;background:#faf6ed;border-radius:0;box-shadow:4px 4px 0 var(--paper),5px 5px 0 #c8c0b0;overflow:visible;isolation:isolate}
body.hub-editorial .tool-card::before{content:"";position:absolute;width:29px;height:7px;left:0;top:-8px;background:var(--vermilion);clip-path:polygon(0 0,80% 0,100% 100%,0 100%)}
body.hub-editorial .tool-card .card-content{align-items:stretch}
body.hub-editorial .tool-card .card-top{flex-direction:column;align-items:center;gap:12px;min-height:78px}
body.hub-editorial .tool-card .icon{width:42px;height:42px;flex-basis:42px;color:var(--paper-ink);place-items:center}
body.hub-editorial .tool-card .icon svg{width:35px;height:35px;stroke-width:1.25}
body.hub-editorial .tool-card .badges{justify-content:center;min-height:0}
body.hub-editorial .tool-card .badges:empty{display:none}
body.hub-editorial .tool-card h3{margin:19px 0 12px;text-align:center;font-size:17px;line-height:1.5}
body.hub-editorial .tool-card p{text-align:center;font-size:12px;line-height:1.75;padding-bottom:18px}
body.hub-editorial .tool-card .card-link{justify-content:flex-end;font-size:11px;padding-top:15px;border-top:1px solid var(--line)}
body.hub-editorial.hub-ready .portal-groups>details:not([open]){display:none}
body.hub-editorial:not(.hub-ready) .section-heading{cursor:pointer}
body.hub-editorial:not(.hub-ready) .portal-groups>.section{margin-bottom:24px}
@media(hover:hover) and (pointer:fine){body.hub-editorial .tool-card:hover{transform:translateY(-5px) rotate(-.3deg);box-shadow:6px 8px 0 var(--paper),7px 9px 0 #bbb19f}}
body.hub-editorial .tool-card:active{transform:translateY(1px);box-shadow:1px 1px 0 #bbb19f}
@media(max-width:1050px){.hub-workspace{grid-template-columns:170px minmax(0,1fr);gap:24px}.hub-index{padding-right:14px}body.hub-editorial .card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){body.hub-editorial main.portal-page{width:calc(100% - 36px);padding-top:20px}body.hub-editorial .editorial-masthead>span{display:none}body.hub-editorial .ui-hero{padding:24px 0}body.hub-editorial .hub-intro h1{font-size:29px}.hub-workspace{grid-template-columns:1fr;gap:25px;padding-top:22px}.hub-index{border:0;border-bottom:1px solid var(--line);padding:0 0 14px}.hub-category-list{display:flex;gap:8px;position:static;overflow-x:auto;padding-bottom:8px}.hub-category-link{flex:0 0 auto;white-space:nowrap;padding:9px 12px;gap:7px;font-size:12px}body.hub-editorial .portal-groups .section-heading h2{font-size:25px}body.hub-editorial .card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}body.hub-editorial .tool-card{padding:22px 14px 18px;min-height:280px}body.hub-editorial .tool-card h3{font-size:16px}}
@media(max-width:480px){body.hub-editorial .card-grid{grid-template-columns:1fr}body.hub-editorial .tool-card{min-height:260px}}
@media print{.hub-workspace{display:block}.hub-index{display:none}body.hub-editorial .tool-card{box-shadow:none}}
/* Every category is visible at once; the index never requires sideways scrolling. */
@media(max-width:700px){
 .hub-category-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;overflow:visible;padding:0}
 .hub-category-link{min-width:0;min-height:68px;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;white-space:normal;padding:8px 10px;font-size:12px;line-height:1.45;border:1px solid var(--line);word-break:keep-all}
 .hub-category-link[aria-current]{border-color:var(--vermilion)}
 .hub-category-link:hover{transform:translateY(-2px)}
 .hub-index-label{margin-bottom:12px}
}

body.hub-editorial .editorial-wordmark{display:inline-flex;align-items:center;gap:8px}
body.hub-editorial .sera-brand-mark{display:block;width:32px;height:32px;flex-shrink:0;object-fit:contain}

/* Brand greeting */
body.hub-editorial .sera-brand-mark{transform-origin:50% 75%;transition:transform .25s ease}
body.hub-editorial .editorial-wordmark:hover .sera-brand-mark,body.hub-editorial .editorial-wordmark:focus-visible .sera-brand-mark{transform:translateY(-2px) rotate(-9deg)}
/* Quiet hub: contents follow their card; no independent text waves. */
body.hub-editorial .tool-card { transition:transform .4s ease,box-shadow .4s ease; }
body.hub-editorial .hub-category-link { transition:transform .4s ease; }
@media(hover:hover) and (pointer:fine) {
  body.hub-editorial .tool-card:hover { transform:rotate(-1deg); }
  body.hub-editorial .hub-category-link:hover { transform:rotate(-.6deg); }
}
body.hub-editorial .tool-card:focus-visible { transform:rotate(-1deg); }
body.hub-editorial .hub-category-link:focus-visible { transform:rotate(-.6deg); }
body.hub-editorial .tool-card:active { transform:translateY(1px); }
/* Restore the title's letter bounce, independently from the cards. */
.category-flip-word { display:inline-block; white-space:nowrap; }
.category-flip-letter { display:inline-block; transform-origin:50% 50%; }
.hub-title-kinetic .page-kinetic-word { display:inline-block; white-space:nowrap; transform-origin:50% 85%; }
.hub-title-kinetic .page-kinetic-letter { display:inline-block; transform-origin:50% 85%; }
@keyframes hub-title-sway {
  0%,100% { translate:0 0; rotate:-.7deg; }
  50% { translate:0 -3px; rotate:1deg; }
}
@media(hover:hover) and (pointer:fine) {
  .hub-title-kinetic .hub-intro h1:hover .page-kinetic-word { animation:hub-title-sway 1.5s ease-in-out infinite; }
  .hub-title-kinetic .page-kinetic-word:nth-child(2n) { animation-delay:-.35s; }
}
@media print {
  .category-flip-letter { transform:none!important; }
  .hub-title-kinetic .page-kinetic-word { animation:none!important; }
  .hub-title-kinetic .page-kinetic-letter { transform:none!important; opacity:1!important; }
}
