/* Bastion v64: progressive, homepage-only visual effects. No dependencies. */
.b56-home { --b64-ease-out:cubic-bezier(.23,1,.32,1); }
.b56-home .b56-faceoff,
.b56-home .b56-story { position:relative; isolation:isolate; }
.b56-home .b56-faceoff::after,
.b56-home .b56-story::after {
 content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit;
 pointer-events:none; opacity:0;
 background:radial-gradient(280px circle at var(--b64-x,50%) var(--b64-y,50%),#6cdbf02b,transparent 72%);
 transition:opacity 180ms ease;
}
.b56-home .b56-story::after {
 background:radial-gradient(240px circle at var(--b64-x,50%) var(--b64-y,50%),#2480ab14,transparent 72%);
}
.b56-home .b56-cloth { position:relative; overflow:hidden; }
.b56-home .b56-cloth::after {
 content:""; position:absolute; inset:-15% -60%; pointer-events:none;
 background:linear-gradient(110deg,transparent 40%,#fff7 49%,#fff9 50%,transparent 60%);
 transform:translateX(-80%); opacity:0;
 transition:transform 650ms var(--b64-ease-out),opacity 180ms ease;
}
.b56-home .b56-card { transition:transform 180ms var(--b64-ease-out),border-color 180ms ease; }
.b56-home .b56-card:hover,
.b56-home .b56-pennant:hover { transform:none; }
.b56-home .b56-story:focus-visible,
.b56-home .b56-card:focus-visible,
.b56-home .b56-pennant:focus-visible,
.b56-home .b56-button:focus-visible { outline:3px solid #278cb8;outline-offset:5px; }
.b56-home .b56-faceoff:focus-within::after { opacity:1; }
@media (hover:hover) and (pointer:fine) {
 .b56-home .b64-lit::after { opacity:1; }
 .b56-home .b56-card:hover { transform:translateY(-3px);border-color:#79bedb; }
 .b56-home .b56-pennant:hover .b56-cloth::after { transform:translateX(80%);opacity:1; }
}
@media (prefers-reduced-motion:reduce) {
 .b56-home .b56-card:hover { transform:none; }
 .b56-home .b56-cloth::after { display:none; }
 .b56-home .b64-lit::after { opacity:0; }
}
