/* One recipe shared by the menu and the site's primary actions. */
:root{--action-fill:#6f61cc;--action-label:#fff;--action-edge:color-mix(in srgb,var(--action-fill) 34%,transparent);--action-hover:color-mix(in srgb,var(--action-fill) 85%,#f4f4f6);--action-ease:cubic-bezier(.2,.75,.25,1)}
body :is(.menu-trigger:not([aria-expanded=true]),.button.primary,.server-row:not(.is-quiet) .server-connect,.poll-submit,.send-button,.clan-button:not(.is-secondary),.staff-native .staff-btn:not(.staff-btn-secondary):not(.staff-btn-danger):not(.staff-btn-ghost)){
 position:relative;isolation:isolate;overflow:hidden;border:1px solid var(--action-edge);border-radius:9px;background:var(--action-fill);color:var(--action-label);box-shadow:inset 0 1px 0 #ffffff12,0 4px 20px color-mix(in srgb,var(--action-fill) 14%,transparent);transition:background-color 160ms,border-color 160ms,box-shadow 200ms var(--action-ease);
}
body :is(.menu-trigger:not([aria-expanded=true]),.button.primary,.server-row:not(.is-quiet) .server-connect,.poll-submit,.send-button,.clan-button:not(.is-secondary),.staff-native .staff-btn:not(.staff-btn-secondary):not(.staff-btn-danger):not(.staff-btn-ghost)):is(:hover,:focus-visible):not(:disabled):not([aria-disabled=true]){
 background:var(--action-hover);border-color:var(--action-edge);color:var(--action-label);box-shadow:inset 0 1px 0 #ffffff20,0 0 20px color-mix(in srgb,var(--action-fill) 26%,transparent);
}
body :is(.menu-trigger:not([aria-expanded=true]),.button.primary,.server-row:not(.is-quiet) .server-connect,.poll-submit,.send-button,.clan-button:not(.is-secondary),.staff-native .staff-btn:not(.staff-btn-secondary):not(.staff-btn-danger):not(.staff-btn-ghost))::after{
 content:'';position:absolute;top:-45%;bottom:-45%;left:0;width:75%;pointer-events:none;border-radius:inherit;background:linear-gradient(110deg,transparent 28%,rgba(235,228,255,.26) 50%,transparent 72%);transform:translateX(-155%);animation:none;
}
body :is(.menu-trigger:not([aria-expanded=true]),.button.primary,.server-row:not(.is-quiet) .server-connect,.poll-submit,.send-button,.clan-button:not(.is-secondary),.staff-native .staff-btn:not(.staff-btn-secondary):not(.staff-btn-danger):not(.staff-btn-ghost)):is(:hover,:focus-visible):not(:disabled):not([aria-disabled=true])::after{animation:action-button-sheen 850ms var(--action-ease)}
body :is(.button.primary,.clan-button:not(.is-secondary)):hover{transform:none}
body :is(.button.primary,.poll-submit,.send-button,.clan-button,.staff-btn):disabled::after{display:none}
@keyframes action-button-sheen{from{transform:translateX(-155%)}to{transform:translateX(190%)}}
@media(prefers-reduced-motion:reduce){body :is(.menu-trigger,.button.primary,.server-connect,.poll-submit,.send-button,.clan-button,.staff-btn)::after{display:none!important}body :is(.menu-trigger,.button.primary,.server-connect,.poll-submit,.send-button,.clan-button,.staff-btn){transition:none}}

/* A short press response on primary actions, preserving existing positioning. */
body :is(.menu-trigger,.button.primary,.server-connect,.poll-submit,.send-button,.clan-button){transition:background-color 160ms,border-color 160ms,box-shadow 200ms var(--action-ease),scale 120ms var(--action-ease)}
body :is(.menu-trigger,.button.primary,.server-connect,.poll-submit,.send-button,.clan-button):active:not(:disabled):not([aria-disabled=true]){scale:.97}
/* One focus border in the language search; readable selected-language mark. */
#locale-popover .locale-search input:is(:focus,:focus-visible){outline:none;outline-offset:0;border:0;box-shadow:none}
#locale-popover .locale-search{transition:border-color 160ms,box-shadow 160ms}
#locale-popover .locale-search:focus-within{border-color:var(--accent-edge);box-shadow:none}
#locale-popover .locale-option{padding-right:27px;transition:background-color 160ms,border-color 160ms,color 160ms}
#locale-popover .locale-option:focus-visible{outline:none;border-color:var(--accent);background:var(--accent-wash)}
#locale-popover .locale-check{position:absolute;top:50%;right:8px;display:grid;place-items:center;width:16px;height:16px;transform:translateY(-50%);color:var(--accent);pointer-events:none}
#locale-popover .locale-check svg{display:block;width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(prefers-reduced-motion:reduce){body :is(.menu-trigger,.button.primary,.server-connect,.poll-submit,.send-button,.clan-button),#locale-popover .locale-search,#locale-popover .locale-option{transition:none}body :is(.menu-trigger,.button.primary,.server-connect,.poll-submit,.send-button,.clan-button):active{scale:1}}

/* Homepage motion follows deliberate actions and new sections entering view. */
.home-v9 :is(.store-category,.home-update,.home-product,.news-lead,.news-item){transition:border-color 200ms,background-color 200ms,box-shadow 200ms}
.home-v9 :is(.store-category,.home-update,.home-product,.news-lead,.news-item):hover{border-color:var(--accent-edge);box-shadow:0 6px 24px color-mix(in srgb,var(--violet) 7%,transparent)}
.home-v9 :is(.category-arrow,.news-read,.home-update-action,.product-price,.community-all,.activity-footer a)>svg{transition:translate 180ms var(--control-ease),color 180ms}
.home-v9 :is(.store-category,.home-update,.home-product,.news-item):hover :is(.category-arrow,.news-read,.home-update-action,.product-price)>svg,.home-v9 :is(.community-all,.activity-footer a):hover>svg{translate:2px 0}
.home-v9 .server-name{transition:color 160ms}.home-v9 .server-name:hover{color:var(--accent)}
.home-v9 .rank-switch:before{transition:transform 220ms var(--control-ease)}
.home-v9 .rank-switch>button{transition:color 160ms,scale 120ms}.home-v9 .rank-switch>button:active{scale:.97}
.home-v9 :is(.rank-line,.purchase-line,.discussion-row,.timeline-row){transition:background-color 180ms,border-color 180ms}
.home-v9 :is(.rank-line,.purchase-line):hover{background:color-mix(in srgb,var(--accent-wash) 40%,transparent)}
@media(prefers-reduced-motion:reduce){.home-v9 *,.home-v9 .rank-switch:before{transition:none!important}.home-v9 .rank-switch>button:active{scale:1}.home-v9 svg{translate:none!important}}
