/* Neon portal: shared shell, content pages and accessible light/dark tokens. */
:root { --bg-color:#0e121b; --card-bg:#171e29; --text-color:#edf2f2; --text-muted:#a5b1c0; --neon-cyan:#80edc7; --neon-orange:#ffae70; --violet-color:#b9a6ff; --portal-line:#323d4c; --portal-accent-ink:#09251b; --portal-art:#223c45; color-scheme:dark; }
:root[data-theme="light"] { --bg-color:#f4f4ee; --card-bg:#fff; --text-color:#18292b; --text-muted:#56656b; --neon-cyan:#14634e; --neon-orange:#a54316; --violet-color:#6942a7; --portal-line:#cbd4cf; --portal-accent-ink:#fff; --portal-art:#d6e8e1; color-scheme:light; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { font-family:system-ui,-apple-system,'Segoe UI',sans-serif; }
h1,h2,h3,h4,.site-navigation .nav-btn { font-family:inherit !important; text-shadow:none; letter-spacing:-.035em; }
h1 { font-size:clamp(36px,5vw,64px); text-align:left; line-height:1.08; }
h2 { font-size:30px; line-height:1.2; }
a { color:var(--neon-cyan); }
button,a { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible { outline:3px solid var(--neon-orange); outline-offset:4px; }
.site-header { max-width:1240px; width:100%; margin:auto; padding:28px 44px; gap:24px; border-bottom:1px solid var(--portal-line); background:transparent; }
.header-brand { text-decoration:none; color:var(--text-color); }
.site-header a:link,.site-header a:visited { text-shadow:none; }
.header-brand:visited { color:var(--text-color); }
.portal-brand { font-size:24px; font-weight:900; letter-spacing:-1px; white-space:nowrap; }
.portal-brand-image { display:block; width:auto; height:auto; max-width:min(180px, 60vw); max-height:50px; object-fit:contain; }
.portal-brand span { color:var(--neon-cyan); }
.header-right-panel { display:flex; gap:22px; align-items:center; }
.site-navigation { gap:24px; }
.site-navigation .nav-btn { font-size:14px; font-weight:500; text-transform:none; color:var(--text-muted); letter-spacing:0; text-shadow:none; padding:10px 0; }
.site-navigation .nav-btn.active { color:var(--text-color); border-bottom:2px solid var(--neon-cyan); }
.language-switcher { box-shadow:none; border:1px solid var(--portal-line); border-radius:7px; }
.language-switcher .lang-btn { font-size:12px; padding:8px 10px; color:var(--text-muted); background:transparent; border:0; text-shadow:none; }
.language-switcher .lang-btn.active { background:var(--neon-cyan); color:var(--portal-accent-ink); }
.theme-toggle { background:transparent; border:1px solid var(--portal-line); border-radius:7px; min-height:38px; padding:8px 10px; color:var(--text-color); font:inherit; font-size:12px; cursor:pointer; }
.content-wrapper { width:100%; flex:1; padding:0; }
.portal-container { max-width:1208px; padding:0 44px; margin:0 auto; }
.portal-hero { display:grid; grid-template-columns:1.25fr 1fr; align-items:center; gap:48px; padding:70px 0 48px; }
.portal-eyebrow { font-size:11px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; color:var(--neon-cyan); margin:0 0 20px; }
.portal-hero h1 { font-size:clamp(40px,5.5vw,76px); margin:0 0 24px; letter-spacing:-.055em; }
.portal-intro { color:var(--text-muted); font-size:18px; max-width:650px; line-height:1.65; }
.portal-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:26px; }
.portal-button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:10px 20px; border:1px solid var(--neon-cyan); border-radius:7px; color:var(--portal-accent-ink); background:var(--neon-cyan); text-decoration:none; font-size:14px; font-weight:700; overflow-wrap:anywhere; }
.portal-button.secondary { color:var(--text-color); border-color:var(--portal-line); background:transparent; }
.portal-button:link,.portal-button:visited,.portal-button:hover { color:var(--portal-accent-ink); text-shadow:none; }
.portal-button.secondary:link,.portal-button.secondary:visited,.portal-button.secondary:hover { color:var(--text-color); }
.portal-teasers a:visited { color:var(--neon-cyan); text-shadow:none; }
.portal-art { min-width:0; min-height:340px; display:grid; place-items:center; overflow:hidden; }
.portal-art img,.portal-game-art img,.portal-world-section img { width:100%; height:auto; display:block; }
.portal-art-abstract { position:relative; background:radial-gradient(ellipse at 70% 30%,var(--portal-art),transparent 70%); }
.portal-art-abstract::before { content:''; position:absolute; width:65%; aspect-ratio:1; border:1px solid var(--neon-cyan); opacity:.3; transform:rotate(30deg); border-radius:30px; }
.portal-wordmark { font-size:clamp(60px,8vw,110px); font-weight:900; letter-spacing:-.08em; line-height:.9; position:relative; opacity:.8; }
.portal-wordmark span { display:inline-block; color:var(--neon-cyan); }
.portal-section { border-top:1px solid var(--portal-line); padding:42px 0; }
.portal-section>h2 { margin:0 0 26px; }
.portal-games { display:grid; grid-template-columns:1fr; gap:24px; }
.portal-game { display:grid; grid-template-columns:1fr 1.15fr; background:var(--card-bg); border:1px solid var(--portal-line); border-radius:18px; overflow:hidden; min-width:0; }
.portal-game-art { min-height:300px; display:grid; place-items:center; overflow:hidden; }
.portal-game-art img { height:100%; object-fit:cover; }
.portal-game-initial { font-size:130px; color:var(--neon-cyan); font-weight:800; line-height:1; position:relative; }
.portal-game-copy { padding:38px; min-width:0; }
.portal-game h3 { font-size:36px; line-height:1.15; margin:0 0 20px; }
.portal-teasers,.portal-wiki { display:grid; grid-template-columns:1fr 1fr; gap:42px; }
.portal-teasers p:not(.portal-eyebrow),.portal-muted { color:var(--text-muted); }
.portal-teasers a { text-decoration:none; font-weight:700; }
.portal-page-heading { padding:64px 0 32px; max-width:850px; }
.portal-page-heading h1 { margin:0 0 24px; }
.portal-world-section { display:grid; gap:30px; padding:36px 0; border-top:1px solid var(--portal-line); }
.portal-world-section h2 { margin-top:0; }
.site-footer { max-width:1208px; width:100%; margin:40px auto 0; padding:30px 44px; background:transparent; border-top:1px solid var(--portal-line); box-shadow:none; color:var(--text-muted); }
.site-footer a { color:var(--text-muted); }
.site-footer .footer-links a,.site-footer .footer-links a:visited,.site-footer .footer-links a:hover { color:var(--text-muted); text-shadow:none; }
.site-footer .footer-centered-container a { text-shadow:none; }
.site-footer .footer-centered-container p .footer-developer,
.site-footer .footer-centered-container p .footer-developer:visited,
.site-footer .footer-centered-container p .footer-developer:hover { color:inherit; font:inherit; text-shadow:inherit; text-decoration:none; }
.site-footer .footer-developer:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.footer-centered-container { text-align:center; }
.footer-links { justify-content:center; flex-wrap:wrap; }
.footer-author { color:var(--text-muted); }
.donation-container { padding-top:60px !important; }
.donation-container>h1 { margin-top:0; }
.goal-card,.member-card,.wallet-card { background:var(--card-bg); border-color:var(--portal-line) !important; box-shadow:none !important; }
.support-note { color:var(--text-muted) !important; }
.social-link { color:var(--text-color) !important; border-color:var(--portal-line) !important; }
.donate-btn:link,.donate-btn:visited { color:var(--neon-orange); text-shadow:none; }
.member-avatar { background:var(--portal-art) !important; }
.info-content { color:var(--text-color) !important; }
.info-content h2,.back-to-home { border-color:var(--portal-line) !important; }
.accent-block { background:var(--card-bg) !important; border-color:var(--portal-line) !important; box-shadow:none !important; }
.info-container { max-width:960px !important; padding:60px 32px 32px !important; }
.info-container>h1 { margin-top:0; }
@media(max-width:1000px) {
 .site-header { display:grid; grid-template-columns:1fr auto auto; padding:24px; gap:16px; }
 .header-right-panel { display:contents; }
 .site-navigation { grid-column:1/-1; grid-row:2; justify-content:flex-start; flex-wrap:wrap; gap:12px 24px; }
 .language-switcher { grid-column:2; grid-row:1; }
 .theme-toggle { grid-column:3; grid-row:1; }
 .portal-container { padding:0 24px; }
 .portal-hero { gap:24px; padding-top:48px; }
 .portal-game-copy { padding:28px; }
}
@media(max-width:700px) {
 .site-header { padding:20px 18px; gap:12px; }
 .portal-brand { font-size:20px; }
 .site-navigation .nav-btn { font-size:13px; }
 .site-navigation { gap:10px 18px; }
 .portal-container { padding:0 18px; }
 .portal-hero,.portal-game,.portal-teasers,.portal-wiki { grid-template-columns:1fr; }
 .portal-hero { padding-top:42px; }
 .portal-art { min-height:240px; }
 .portal-game-art { min-height:210px; }
 .portal-game h3 { font-size:30px; }
 .portal-wordmark { font-size:80px; }
 .portal-actions { gap:10px; }
 .portal-button { padding:10px 15px; }
 .portal-page-heading { padding-top:42px; }
 .site-footer { padding:26px 18px; }
 .info-container { padding:40px 18px 20px !important; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition:none !important; } }
@media(max-width:360px) {
 .site-header { grid-template-columns:1fr auto; }
 .header-brand { grid-column:1/-1; grid-row:1; }
 .language-switcher { grid-column:1; grid-row:2; justify-self:start; }
 .theme-toggle { grid-column:2; grid-row:2; }
 .site-navigation { grid-column:1/-1; grid-row:3; }
}
