/* ==========================================================================
   阿木玩 AMU PLAY · 街机像素风设计系统 v20261030-ARCADE
   风格：复古街机厅 / 8-bit 像素朋克
   深紫夜色 + 荧光粉 + 电子青 + 街机黄；硬边框、错位硬阴影、点阵扫描线。
   本文件在所有页面内联样式之后加载，用于统一令牌、氛围与组件质感。
   ========================================================================== */

@font-face {
  font-family: "Press Start 2P";
  src: url("../fonts/press-start-2p.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  /* 底色层级 */
  --amu-bg: #0b0518;
  --amu-bg-2: #120a24;
  --amu-panel: #160d2b;
  --amu-panel-2: #1d1136;
  --amu-card: #1a0f31;
  --amu-line: #2f1f56;
  --amu-line-2: #452c7d;

  /* 街机霓虹 */
  --amu-pink: #ff2e97;
  --amu-pink-soft: #ff7ec1;
  --amu-cyan: #22e6ff;
  --amu-yellow: #ffd23f;
  --amu-lime: #a6ff5c;
  --amu-purple: #8b5cf6;
  --amu-danger: #ff4d5e;

  /* 文本 */
  --amu-text: #f6f0ff;
  --amu-text-2: #b7a8d9;
  --amu-text-3: #7b6aa3;

  /* 字体：像素字用于拉丁/数字，中文回落到黑体 */
  --amu-pixel: "Press Start 2P", "Zpix", monospace;
  --amu-display: "Press Start 2P", "Zpix", "SimHei", "Microsoft YaHei", sans-serif;
  --amu-sans: "HarmonyOS Sans SC", "PingFang SC", "Hiragino Sans GB",
    "Microsoft YaHei UI", "Microsoft YaHei", system-ui, sans-serif;
  --amu-mono: ui-monospace, "Cascadia Mono", Consolas, monospace;

  /* 硬阴影 */
  --amu-hard: 4px 4px 0 rgba(0, 0, 0, .7);
  --amu-hard-pink: 5px 5px 0 rgba(255, 46, 151, .35);
  --amu-ease: cubic-bezier(.2, .8, .2, 1);
}

/* ==========================================================================
   1. 全局基底：像素星空 + 街机扫描线
   ========================================================================== */

html { -webkit-text-size-adjust: 100%; }

body {
  font-family: var(--amu-sans);
  color: var(--amu-text);
  background-color: var(--amu-bg);
  -webkit-font-smoothing: antialiased;
}

/* 星空 + 地平线辉光（固定层，整屏连续，不分块截断） */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-color: var(--amu-bg);
  background-image:
    radial-gradient(2px 2px at 24px 32px, rgba(255, 255, 255, .5) 50%, transparent 51%),
    radial-gradient(2px 2px at 148px 96px, rgba(255, 46, 151, .55) 50%, transparent 51%),
    radial-gradient(2px 2px at 86px 186px, rgba(34, 230, 255, .5) 50%, transparent 51%),
    radial-gradient(1px 1px at 210px 148px, rgba(255, 255, 255, .3) 50%, transparent 51%),
    radial-gradient(120% 62% at 50% 108%, rgba(255, 46, 151, .16), transparent 62%),
    radial-gradient(90% 48% at 8% 0%, rgba(139, 92, 246, .18), transparent 60%);
  background-size: 240px 240px, 240px 240px, 240px 240px, 240px 240px, 100% 100%, 100% 100%;
}

/* 扫描线 + 四角暗角 */
body::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  opacity: .85;
  background-image:
    repeating-linear-gradient(0deg, rgba(0, 0, 0, .22) 0, rgba(0, 0, 0, .22) 1px, transparent 1px, transparent 3px),
    radial-gradient(130% 100% at 50% 50%, transparent 58%, rgba(0, 0, 0, .55) 100%);
}

::selection { background: var(--amu-pink); color: #12000a; }

::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: #120a24; }
::-webkit-scrollbar-thumb {
  background: var(--amu-pink);
  border: 2px solid #120a24;
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .18);
}
::-webkit-scrollbar-thumb:hover { background: #ff5aa8; }

:focus-visible {
  outline: 3px solid var(--amu-yellow);
  outline-offset: 2px;
}

/* 图片统一像素锐化 */
img { image-rendering: -webkit-optimize-contrast; }

/* ==========================================================================
   2. 排版
   ========================================================================== */

h1, h2, h3, h4 {
  font-family: var(--amu-display);
  letter-spacing: .02em;
  line-height: 1.35;
  text-wrap: balance;
  text-shadow: 2px 2px 0 rgba(0, 0, 0, .6);
}

/* 数字/代号统一像素等宽 */
.t-stat b,
.info-line b,
.char-level,
.kh-mock,
.visit-count {
  font-family: var(--amu-pixel);
  font-variant-numeric: tabular-nums;
}

/* 虚线像素分割 */
.amu-dash {
  height: 4px;
  background: repeating-linear-gradient(90deg, var(--amu-line-2) 0 8px, transparent 8px 16px);
}

/* ==========================================================================
   3. 按钮：街机按键
   ========================================================================== */

.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5em;
  font-family: var(--amu-sans);
  font-weight: 800;
  letter-spacing: .06em;
  border-radius: 2px;
  border: 3px solid #000;
  box-shadow: var(--amu-hard);
  transition: transform .12s var(--amu-ease), box-shadow .12s var(--amu-ease),
    background-color .15s, border-color .15s, color .15s;
}

.btn:active {
  transform: translate(4px, 4px) !important;
  box-shadow: 0 0 0 rgba(0, 0, 0, 0) !important;
}

.btn-primary {
  background: var(--amu-yellow);
  color: #1c0f00;
  border-color: #000;
  box-shadow: 5px 5px 0 var(--amu-pink), 5px 5px 0 3px rgba(0, 0, 0, .35);
}

.btn-primary:hover {
  transform: translate(-2px, -2px);
  background: #ffdc6b;
  box-shadow: 7px 7px 0 var(--amu-pink), 7px 7px 0 3px rgba(0, 0, 0, .35);
}

.btn-outline {
  background: rgba(34, 230, 255, .06);
  border: 3px solid var(--amu-cyan);
  color: var(--amu-cyan);
  box-shadow: 5px 5px 0 rgba(34, 230, 255, .28), 5px 5px 0 3px rgba(0, 0, 0, .3);
}

.btn-outline:hover {
  transform: translate(-2px, -2px);
  background: rgba(34, 230, 255, .16);
  color: #bff7ff;
  box-shadow: 7px 7px 0 rgba(34, 230, 255, .4), 7px 7px 0 3px rgba(0, 0, 0, .3);
}

.btn:disabled, .btn[disabled] {
  opacity: .45;
  cursor: not-allowed;
  transform: none !important;
  filter: grayscale(.5);
}

.btn-small, .btn-sm {
  padding: 8px 14px !important;
  font-size: 12.5px !important;
  border-width: 2px;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, .7);
}

/* ==========================================================================
   4. 表单
   ========================================================================== */

input, textarea, select { font-family: inherit; }

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: none;
  border-color: var(--amu-yellow) !important;
  box-shadow: 0 0 0 2px rgba(255, 210, 63, .35), inset 0 0 0 1px rgba(255, 210, 63, .25) !important;
}

/* ==========================================================================
   5. 面板通用：方块边框 + 硬阴影
   ========================================================================== */

.board-wrap,
.game-panel,
.game-side,
.modal-box,
.player-card,
.theme-card,
.contact-content,
.kh-panel {
  border-radius: 2px;
}

/* 顶部像素刻线（悬停点亮） */
.board-wrap::before,
.game-panel::before,
.game-side::before,
.player-card::before,
.theme-card::before,
.contact-content::before {
  content: '';
  position: absolute;
  top: 0;
  left: 16px;
  right: 16px;
  height: 4px;
  background: repeating-linear-gradient(90deg, var(--amu-pink) 0 8px, transparent 8px 16px);
  opacity: .3;
  transition: opacity .2s steps(2, end);
  pointer-events: none;
}

.board-wrap:hover::before,
.game-panel:hover::before,
.card:hover::before,
.player-card:hover::before,
.theme-card:hover::before,
.contact-content:hover::before {
  opacity: 1;
}

/* ==========================================================================
   6. 子页通用页头 / 页脚
   ========================================================================== */

body.amu-page header {
  border-bottom: 4px solid #000;
  box-shadow: 0 4px 0 rgba(255, 46, 151, .35);
}

body.amu-page header h1 {
  font-size: clamp(20px, 3.4vw, 26px);
  letter-spacing: .04em;
}

body.amu-page footer,
body.amu-page .site-beian {
  font-family: var(--amu-pixel);
  font-size: 10px;
  letter-spacing: .08em;
  color: var(--amu-text-3);
}

/* ==========================================================================
   7. 滚动入场（像素步进）
   ========================================================================== */

html.amu-anim [data-reveal] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .6s steps(5, end), transform .6s steps(5, end);
  transition-delay: var(--amu-delay, 0ms);
}

html.amu-anim [data-reveal="left"] { transform: translateX(-24px); }
html.amu-anim [data-reveal="right"] { transform: translateX(24px); }
html.amu-anim [data-reveal="zoom"] { transform: scale(.97); }

html.amu-anim [data-reveal].is-in {
  opacity: 1;
  transform: none;
}

/* ==========================================================================
   8. 指针光斑（街机灯箱）
   ========================================================================== */

.amu-spotlight::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(
    340px circle at var(--amu-mx, 20%) var(--amu-my, 40%),
    rgba(255, 46, 151, .12),
    transparent 68%
  );
}

.amu-spotlight > * { position: relative; z-index: 1; }

/* ==========================================================================
   9. 响应式 / 性能降级
   ========================================================================== */

@media (max-width: 820px) {
  body::after { opacity: .6; }
  nav, .char-card, #back-top, .topbar {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  nav { background: rgba(11, 5, 24, .97) !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body::after { display: none; }
  *,
  *::before,
  *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
  html.amu-anim [data-reveal] { opacity: 1 !important; transform: none !important; }
}

/* ==========================================================================
   10. 子页面（个人中心 / 玩家目录 / 个人主页）
   ========================================================================== */

body.amu-page a { color: var(--amu-yellow); }
body.amu-page a:hover { color: var(--amu-pink); }

body.amu-page header h1 span { color: var(--amu-yellow); }

body.amu-page .avatar {
  border-radius: 2px;
  box-shadow: 4px 4px 0 rgba(0, 0, 0, .6);
}

/* 站点标识：像素徽标 + 中英双行字标 */
.amu-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  line-height: 1;
  text-decoration: none;
  color: inherit;
}
.amu-brand-mark {
  position: relative;
  width: 30px;
  height: 30px;
  flex: none;
  background: var(--amu-pink);
  border: 2px solid #000;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, .7), inset 0 0 0 2px var(--amu-yellow);
  image-rendering: pixelated;
}
.amu-brand-mark::before {
  content: '';
  position: absolute;
  inset: 5px;
  background: var(--amu-yellow);
  clip-path: polygon(
    0 0, 33.33% 0, 33.33% 20%, 66.66% 20%, 66.66% 40%, 100% 40%,
    100% 60%, 66.66% 60%, 66.66% 80%, 33.33% 80%, 33.33% 100%, 0 100%
  );
}
.amu-brand-txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.amu-brand-cn {
  font-size: 19px;
  font-weight: 900;
  letter-spacing: .05em;
  color: #fff;
  white-space: nowrap;
  text-shadow: 2px 2px 0 #000, 3px 3px 0 rgba(255, 46, 151, .5);
}
.amu-brand-cn b { color: var(--amu-yellow); font-weight: 900; }
.amu-brand-cn i { color: var(--amu-pink); font-style: normal; }
.amu-brand-en {
  font-family: var(--amu-pixel);
  font-size: 8px;
  letter-spacing: .2em;
  color: var(--amu-cyan);
  text-shadow: 1px 1px 0 #000;
  white-space: nowrap;
}
.amu-brand-tag {
  font-family: inherit;
  font-size: 10px;
  letter-spacing: .04em;
  color: var(--amu-text-3);
  border: 1px solid var(--amu-line-2);
  padding: 3px 7px;
  white-space: nowrap;
}
.amu-brand:hover .amu-brand-mark { animation: amuBrandStep .7s steps(2, end) infinite; }
@keyframes amuBrandStep {
  0%, 100% { transform: none; box-shadow: 3px 3px 0 rgba(0, 0, 0, .7), inset 0 0 0 2px var(--amu-yellow); }
  50% { transform: translate(2px, 2px); box-shadow: 1px 1px 0 rgba(0, 0, 0, .7), inset 0 0 0 2px var(--amu-yellow); }
}

/* 子页头部的品牌字标需要压过旧的 h1 span 规则 */
body.amu-page header h1 span.amu-brand-cn { color: #fff; }
body.amu-page header h1 span.amu-brand-cn b { color: var(--amu-yellow); }
body.amu-page header h1 span.amu-brand-cn i { color: var(--amu-pink); }
body.amu-page header h1 span.amu-brand-en { color: var(--amu-cyan); }
body.amu-page header h1 span.amu-brand-tag { color: var(--amu-text-3); }

/* 玩家目录卡片 */
body.amu-page .player-card {
  background: var(--amu-card);
  border: 2px solid var(--amu-line-2);
  box-shadow: 5px 5px 0 rgba(0, 0, 0, .55);
  transition: transform .12s steps(2, end), box-shadow .12s steps(2, end), border-color .15s;
}

body.amu-page .player-card:hover {
  border-color: var(--amu-pink);
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 rgba(255, 46, 151, .35);
}

body.amu-page .player-card .avatar {
  border: 3px solid var(--amu-cyan);
  background: var(--amu-panel-2);
}

body.amu-page .subdomain { color: var(--amu-cyan); }

body.amu-page .empty {
  font-family: var(--amu-pixel);
  font-size: 11px;
  letter-spacing: .06em;
}

/* 个人主页 / 个人中心的通用卡片与浮层 */
body.amu-page .card,
body.amu-page .album-card,
body.amu-page .lb-content,
body.amu-page .hp-menu-panel,
body.amu-page .hp-menu-toggle,
body.amu-page .modal-box {
  border-radius: 2px;
}

body.amu-page .card,
body.amu-page .album-card,
body.amu-page .lb-content,
body.amu-page .hp-menu-panel,
body.amu-page .modal-box {
  box-shadow: 6px 6px 0 rgba(0, 0, 0, .55);
}

body.amu-page .hp-menu-toggle:hover { border-color: var(--amu-yellow); color: var(--amu-yellow); }

