/* Portal v27: component-scoped design. Original game palettes/fonts remain owned by each game. */
:root{--portal-text:#24262b;--portal-muted:#5d626b;--portal-panel:#fff;--portal-line:#d8dade;--portal-accent:#ff902f;--portal-hover:#111e36;--portal-hover-text:#f5f9ff;--portal-link:#994600;--portal-background:radial-gradient(ellipse 85% 650px at 5% 0%,#e7e9ec,transparent 75%),radial-gradient(ellipse 75% 900px at 100% 30%,#eef0f2,transparent 80%),linear-gradient(160deg,#fafafa,#eceef0)}
html[data-theme="dark"]{--portal-text:#faf7f4;--portal-muted:#b4bfd3;--portal-panel:#111e36;--portal-line:#384b68;--portal-hover:#e4eefb;--portal-hover-text:#111e36;--portal-link:#ffac63;--portal-background:radial-gradient(ellipse 85% 650px at 5% 0%,#19365a,transparent 75%),radial-gradient(ellipse 75% 900px at 100% 30%,#152947,transparent 80%),linear-gradient(160deg,#0d1931,#070d1e)}
html[data-theme] body{background:var(--portal-background)!important;min-height:100vh;margin:0}
html[data-theme] :is(.alexo-global-header,.alexo-global-footer){box-sizing:border-box;max-width:1448px;width:100%;padding:18px 24px;margin-inline:auto;color:var(--portal-text);border-color:var(--portal-line);background:transparent;box-shadow:none;--alexo-nav-line:var(--portal-line);--alexo-nav-text:var(--portal-text);--alexo-nav-muted:var(--portal-muted);--panel:var(--portal-panel);--text:var(--portal-text);--lime:var(--portal-accent)}
html[data-theme] .alexo-global-header{padding-block:8px;min-height:80px;border-bottom:1px solid var(--portal-line)}
.alexo-portal-brand{display:inline-block;position:relative;width:260px;max-width:100%;line-height:0;flex-shrink:0}
html[data-theme] .alexo-portal-brand img{display:block;width:100%;height:auto;aspect-ratio:780/267;object-fit:contain;filter:none}
html[data-theme] .alexo-portal-brand .alexo-portal-logo-dark{display:none}
html[data-theme="dark"] .alexo-portal-brand .alexo-portal-logo-light{display:none}
html[data-theme="dark"] .alexo-portal-brand .alexo-portal-logo-dark{display:block}
html[data-theme] .alexo-global-footer .alexo-portal-brand{width:150px}
html[data-theme] .alexo-global-footer{font-size:12px;align-items:center;margin-top:32px;padding-bottom:30px}
html[data-theme] .alexo-global-header :is(.alexo-nav-menu>summary,.alexo-menu-panel){background:var(--portal-panel);color:var(--portal-text);border:1px solid var(--portal-line);box-shadow:none}
html[data-theme] .alexo-global-header :is(.alexo-menu-panel a,.alexo-menu-panel button){color:var(--portal-text)}
html[data-theme] .alexo-global-header :is(.alexo-menu-panel a:hover,.alexo-menu-panel button:hover,.alexo-nav-menu>summary:hover){background:var(--portal-hover);color:var(--portal-hover-text)}
html[data-theme] .alexo-global-header :is(.alexo-menu-panel [aria-current="page"],.theme-panel button[aria-pressed="true"],.alexo-mobile-theme button[aria-pressed="true"]){background:#ff902f;color:#23170e}
html[data-theme] .alexo-global-header :is(.alexo-support-nav,.alexo-mobile-support){background:linear-gradient(#ffa64f,#ff8b29);color:#23170e;border:1px solid #dc731f;box-shadow:inset 0 1px 0 #ffffff70}
html[data-theme] .alexo-global-header :is(.alexo-support-nav,.alexo-mobile-support):hover{box-shadow:0 0 14px #ff690080,0 0 26px #ff690040}
.alexo-portal-home{max-width:1448px!important;width:100%;box-sizing:border-box;margin:0 auto!important;padding:18px 24px 0!important;color:var(--portal-text);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.65}
.alexo-portal-home *{box-sizing:border-box}
.alexo-portal-filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.alexo-portal-filters[hidden],.alexo-portal-card[hidden]{display:none!important}
.alexo-portal-filters button{border:1px solid var(--portal-line);background:var(--portal-panel);color:var(--portal-text);font:650 13px/1.2 system-ui,sans-serif;border-radius:10px;min-height:42px;padding:10px 16px;cursor:pointer;transition:background-color .18s,color .18s}
.alexo-portal-filters button[aria-pressed="true"]{background:#ff902f;border-color:#ff902f;color:#23170e}
.alexo-portal-filters button:is(:hover,:focus-visible,:active){background:var(--portal-hover);border-color:var(--portal-hover);color:var(--portal-hover-text)}
.alexo-portal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.alexo-portal-card{display:block;min-width:0;overflow:hidden;border:1px solid var(--portal-line);border-radius:14px;background:var(--portal-panel);color:var(--portal-text);text-decoration:none;box-shadow:none;transition:transform .18s,box-shadow .18s,border-color .18s;touch-action:manipulation}
.alexo-portal-card:is(:hover,:focus-visible,:active){color:var(--portal-text);border-color:#ff902f;box-shadow:0 0 12px #ff690099,0 0 28px #ff690066,0 8px 38px #ff690033;transform:translateY(-2px)}
.alexo-portal-card:focus-visible{outline:2px solid #ff902f;outline-offset:3px}
.alexo-portal-image{aspect-ratio:16/9;position:relative;overflow:hidden;background:#101b31}
.alexo-portal-image img{width:100%;height:100%;display:block;object-fit:cover}
.alexo-portal-image::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 20% 0%,#ffffff30,transparent 68%);box-shadow:inset 0 1px 0 #ffffff40}
.alexo-portal-card-copy{padding:9px 12px 10px}
.alexo-portal-name{display:block;font-size:14px;font-weight:750;line-height:1.25;letter-spacing:-.02em;color:var(--portal-text);white-space:nowrap}
.alexo-portal-card-copy p{margin:5px 0 0;color:var(--portal-muted);font-size:12px;line-height:1.45}
.alexo-portal-intro{margin-top:44px;padding-top:30px;border-top:1px solid var(--portal-line)}
html[data-theme] .alexo-portal-home :is(h1,h2,h3){color:var(--portal-text);-webkit-text-fill-color:var(--portal-text);font-family:inherit;text-transform:none;letter-spacing:-.025em;line-height:1.25}
.alexo-portal-intro h1{font-size:clamp(25px,3vw,38px);margin:0 0 20px}
.alexo-portal-intro p{max-width:1060px;font-size:15px;color:var(--portal-muted);margin:12px 0}
.alexo-portal-intro strong{color:var(--portal-text)}
.alexo-portal-benefits{display:flex;flex-wrap:wrap;gap:10px 24px;list-style:none;margin:18px 0;padding:0;font-size:13px}
.alexo-portal-benefits li::before{content:"✓";margin-right:7px;color:var(--portal-link)}
.alexo-portal-stories{margin-top:36px}
.alexo-portal-stories h2{font-size:25px;margin:0 0 20px}
.alexo-portal-story-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 32px}
.alexo-portal-story-grid h3{font-size:17px;margin:0 0 8px}
.alexo-portal-story-grid p{margin:0;font-size:14px;color:var(--portal-muted)}
.alexo-portal-story-grid a{color:var(--portal-link);text-underline-offset:3px}
.alexo-portal-story-grid h3 a{color:var(--portal-text);text-decoration:none}
.alexo-portal-story-grid a:hover{text-decoration:underline}
.alexo-portal-languages{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--portal-line);margin-top:32px;padding-top:24px}
.alexo-portal-languages a{color:var(--portal-text);background:var(--portal-panel);border:1px solid var(--portal-line);padding:8px 12px;font-size:12px;border-radius:8px;text-decoration:none}
.alexo-portal-languages a[aria-current="page"]{border-color:var(--portal-link)}
/* Outer recommendation panels only: do not recolour controls inside any game. */
html[data-theme] .alexo-recommendations{--text:var(--portal-text);--muted:var(--portal-muted);--panel:var(--portal-panel);--line:var(--portal-line);--lime:var(--portal-accent);color:var(--portal-text)}
html[data-theme] .alexo-recommendations :is(h2,h3){color:var(--portal-text);-webkit-text-fill-color:var(--portal-text)}
@media(max-width:760px){
 html[data-theme] .alexo-global-header{padding:2px 14px;min-height:68px}
 .alexo-portal-brand{width:220px}
 .alexo-portal-home{padding:14px 14px 0!important}
 .alexo-portal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .alexo-portal-card{border-radius:11px}
 .alexo-portal-card-copy{padding:8px 8px 9px}
 .alexo-portal-name{font-size:12.5px;letter-spacing:-.045em}
 .alexo-portal-card-copy p{font-size:11.5px;line-height:1.4;margin-top:4px}
 .alexo-portal-filters{gap:6px;margin-bottom:14px}
 .alexo-portal-filters button{padding:9px 12px;font-size:12px}
 .alexo-portal-intro{margin-top:30px;padding-top:24px}
 .alexo-portal-story-grid{grid-template-columns:1fr;gap:24px}
 html[data-theme] .alexo-global-footer{padding-inline:14px}
}
@media(max-width:360px){.alexo-portal-name{font-size:11.5px}.alexo-portal-brand{width:190px}}
@media(prefers-reduced-motion:reduce){.alexo-portal-card,.alexo-portal-filters button{transition:none}.alexo-portal-card:is(:hover,:focus-visible,:active){transform:none}}
html[data-theme] .alexo-recommend-card{background:var(--portal-panel);border:1px solid var(--portal-line);color:var(--portal-text);box-shadow:none}
html[data-theme] .alexo-recommend-card small{color:var(--portal-muted)}
html[data-theme] .alexo-recommend-card:not(.is-planned):hover{background:var(--portal-panel);border-color:#ff902f;box-shadow:0 0 14px #ff690060}
html[data-theme] :is(.alexo-global-header,.alexo-global-footer,.alexo-recommendations) :is(a,button,summary):focus-visible{outline:2px solid #ff902f;outline-offset:3px}
html[data-theme] .alexo-global-header .alexo-nav-menu[open]>summary{outline:2px solid #ff902f;outline-offset:3px}
