/* EMBER V – final consistent layout overrides */
:root{--ev-pink:#fa408a;--ev-panel:#17101b;--ev-border:#573449}
body{overflow-x:hidden}
.faction-tile{min-width:0;min-height:350px!important;overflow:hidden;border-radius:18px!important}
.faction-tile-art{background-size:cover!important;background-position:center center!important;opacity:1!important;filter:saturate(1.08) contrast(1.05)!important}
.faction-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 20%,rgba(8,6,12,.12) 42%,rgba(8,6,12,.94) 100%);pointer-events:none;z-index:0}
.faction-tile .tile-top,.faction-tile .tile-content{z-index:2}
.faction-tile .tile-content h3{font-size:clamp(26px,2.4vw,38px)!important;overflow-wrap:break-word}
.faction-grid,.catalog-grid{align-items:stretch}
.faction-grid:has(>.faction-tile:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))!important}
/* Fix the broken detail page: the ribbon must span the grid, not occupy a column */
.detail-shell{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(285px,340px)!important;gap:28px!important;align-items:start!important;width:min(1160px,calc(100% - 36px))!important;max-width:1160px!important;margin:0 auto!important}
.detail-shell>.design-ribbon{grid-column:1/-1!important;width:100%!important;margin:0 0 12px!important;min-width:0}
.detail-main{grid-column:1!important;width:auto!important;min-width:0!important;max-width:none!important}
.detail-sidebar{grid-column:2!important;grid-row:2!important;position:sticky!important;top:110px!important;width:auto!important;max-width:none!important;margin:0!important}
.detail-tabs{display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin:0 0 18px!important}
.detail-panel-card{min-height:300px;border-radius:16px!important;padding:clamp(22px,3vw,42px)!important}
.detail-panel-card h2{overflow-wrap:anywhere}
.unit-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.unit-card{min-width:0;border-radius:12px!important}
.side-info{border-radius:16px!important;padding:26px!important}
.side-info .button{justify-content:center;min-height:52px!important;text-align:center}
/* Polish typography, interaction and accessibility */
.button,.tab,.nav-link,.role-card,.faction-tile{transition:transform .25s ease,background .25s ease,border-color .25s ease,box-shadow .25s ease!important}
.button:hover{transform:translateY(-2px)}
:where(a,button,input,select,textarea):focus-visible{outline:2px solid #ff91bd!important;outline-offset:4px!important}
.role-card{border-radius:16px!important}
.role-card h3{overflow-wrap:break-word}
[hidden]{display:none!important}
@media(max-width:900px){.detail-shell{grid-template-columns:minmax(0,1fr)!important}.detail-shell>.design-ribbon{grid-column:1!important}.detail-main{grid-column:1!important}.detail-sidebar{grid-column:1!important;grid-row:auto!important;position:static!important}.faction-grid:has(>.faction-tile:nth-child(3):last-child){grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:600px){.faction-grid:has(>.faction-tile:nth-child(3):last-child){grid-template-columns:1fr!important}.detail-shell{width:calc(100% - 32px)!important}.detail-panel-card{padding:22px!important}.unit-grid{grid-template-columns:1fr!important}.faction-tile{min-height:340px!important}.detail-tabs .tab{flex:1 1 auto!important}.catalog-header h2{overflow-wrap:break-word}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
