/* 豆苗星球 · 像素风共享样式（Pixel Art Design System）
   契约：圆角 0 / 4px 硬边框 #1a1c2c / 硬边阴影 2·4·6px 无模糊
   交互：hover 调色板硬切换；active 位移量 = 阴影偏移量且阴影归零；禁止任何 transition */

:root{
  /* 8-bit 调色板 */
  --ink:#1a1c2c;
  --paper:#f4f4f4;
  --white:#ffffff;
  --red:#ff004d;
  --green:#00e436;
  --blue:#29adff;
  --yellow:#ffec27;
  /* GameBoy 绿系 */
  --gb1:#9bbc0f;
  --gb2:#8bac0f;
  --gb3:#306230;
  --gb4:#0f380f;
  /* 语义 */
  --ok:var(--green);
  --bad:var(--red);
  --line:var(--ink);

  --mono:'JetBrains Mono','Cascadia Mono',Consolas,'PingFang SC','Microsoft YaHei',monospace;

  --sp1:8px; --sp2:16px; --sp3:24px; --sp4:32px; --sp5:48px; --sp6:64px;
  --tap:64px;      /* 儿童大尺寸触控最小高度 */
  --tap-lg:76px;

  --sh-sm:2px 2px 0 var(--ink);
  --sh:4px 4px 0 var(--ink);
  --sh-lg:6px 6px 0 var(--ink);

  --hud:104px;
}

*,*::before,*::after{box-sizing:border-box;transition:none !important;animation-timing-function:steps(1,end)}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--mono);font-size:17px;line-height:1.6;
  letter-spacing:.02em;
}
img,svg{display:block}
a{color:var(--ink)}
h1,h2,h3,h4{margin:0;font-weight:700;text-transform:uppercase;letter-spacing:.08em;line-height:1.25}
p{margin:0 0 var(--sp2)}
:focus-visible{outline:4px solid var(--blue);outline-offset:3px}

.px-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.px-wrap{width:min(1080px,94vw);margin:0 auto}
.px-stack>*+*{margin-top:var(--sp2)}
.px-row{display:flex;align-items:center;gap:var(--sp2);flex-wrap:wrap}
.px-row--tight{gap:var(--sp1)}
.px-spacer{flex:1 1 auto}
.px-center{display:flex;align-items:center;justify-content:center}

/* ---------- 图标 ---------- */
.px-ico{width:24px;height:24px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter}
.px-ico--lg{width:32px;height:32px}
.px-ico--xl{width:52px;height:52px;stroke-width:2.4}
.px-ico--filled{fill:currentColor;stroke:none}
.px-sprite{image-rendering:pixelated;shape-rendering:crispEdges}

/* ---------- 按钮 ---------- */
.px-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:var(--tap);padding:0 var(--sp3);
  border:4px solid var(--ink);border-radius:0;
  background:var(--white);color:var(--ink);
  font-family:var(--mono);font-size:19px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;text-decoration:none;cursor:pointer;
  box-shadow:var(--sh);user-select:none;
}
.px-btn:hover{background:var(--yellow)}
.px-btn:active{transform:translate(4px,4px);box-shadow:none}
.px-btn--red{background:var(--red);color:var(--white)}
.px-btn--red:hover{background:var(--blue)}
.px-btn--green{background:var(--green);color:var(--ink)}
.px-btn--green:hover{background:var(--yellow)}
.px-btn--blue{background:var(--blue);color:var(--ink)}
.px-btn--blue:hover{background:var(--yellow)}
.px-btn--yellow{background:var(--yellow);color:var(--ink)}
.px-btn--yellow:hover{background:var(--green)}
.px-btn--gb{background:var(--gb3);color:var(--gb1)}
.px-btn--gb:hover{background:var(--gb1);color:var(--gb4)}
.px-btn--lg{min-height:var(--tap-lg);font-size:22px;padding:0 var(--sp4)}
.px-btn--sm{min-height:var(--tap);font-size:16px;padding:0 var(--sp2)}
.px-btn--icon{min-width:var(--tap);padding:0 var(--sp2)}
.px-btn--block{display:flex;width:100%}
.px-btn[disabled],.px-btn[aria-disabled="true"]{background:var(--paper);color:#8a8f9c;box-shadow:var(--sh-sm);cursor:not-allowed}
.px-btn[disabled]:hover,.px-btn[aria-disabled="true"]:hover{background:var(--paper)}

/* ---------- 卡片 / 面板 ---------- */
.px-card{background:var(--white);border:4px solid var(--ink);border-radius:0;box-shadow:var(--sh-lg);padding:var(--sp3)}
.px-card--flat{box-shadow:none}
.px-card--dark{background:var(--gb4);color:var(--gb1);border-color:var(--gb3)}
.px-card--gb{background:var(--gb1);border-color:var(--gb4);box-shadow:var(--sh-lg)}
.px-card__title{font-size:22px;margin-bottom:var(--sp1)}
.px-card__sub{margin:0;font-size:15px;opacity:.85}
.px-card--link{cursor:pointer}
.px-card--link:hover{background:var(--yellow);box-shadow:var(--sh-sm);transform:translate(4px,4px);border-color:var(--ink)}
.px-card--link:active{transform:translate(6px,6px);box-shadow:none}

/* ---------- 顶部 HUD ---------- */
.px-hud{
  position:sticky;top:0;z-index:30;
  background:var(--ink);color:var(--paper);
  border-bottom:4px solid var(--ink);
}
.px-hud__in{display:flex;align-items:center;gap:var(--sp2);min-height:var(--hud);padding:var(--sp1) 0}
.px-hud__title{font-size:20px;letter-spacing:.1em;color:var(--white)}
.px-hud__sub{font-size:13px;color:var(--gb1);letter-spacing:.08em}
.px-hud .px-btn{box-shadow:none;border-color:var(--paper)}
.px-hud .px-btn:active{transform:translate(4px,4px);box-shadow:none;opacity:.85}
.px-hud .px-btn--red{border-color:var(--paper)}

/* ---------- 徽章 / 标签 ---------- */
.px-badge{
  width:132px;padding:var(--sp2) var(--sp1);
  display:flex;flex-direction:column;align-items:center;gap:6px;
  background:var(--white);border:4px solid var(--ink);box-shadow:var(--sh);
  text-align:center;
}
.px-badge__ico{width:52px;height:52px}
.px-badge__name{font-size:14px;font-weight:700;line-height:1.3}
.px-badge--locked{background:var(--paper);color:#8a8f9c;box-shadow:var(--sh-sm);border-style:dashed}
.px-badge--locked .px-badge__ico{opacity:.4}
.px-badge--new{animation:px-pop .35s steps(1,end) 3}

.px-chip{
  display:inline-flex;align-items:center;gap:8px;padding:6px 14px;
  border:3px solid var(--ink);background:var(--white);
  font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
}
.px-chip--yellow{background:var(--yellow)}
.px-chip--green{background:var(--green)}
.px-chip--red{background:var(--red);color:var(--white)}
.px-chip--gb{background:var(--gb1);border-color:var(--gb4);color:var(--gb4)}

/* ---------- 分段进度条 ---------- */
.px-progress{display:flex;gap:6px;align-items:center}
.px-progress__seg{width:26px;height:26px;border:3px solid var(--ink);background:var(--white)}
.px-progress__seg.is-on{background:var(--green)}
.px-progress__seg.is-cur{background:var(--yellow)}

/* ---------- 二进制灯泡 / 开关 ---------- */
.px-lamp{
  width:72px;height:88px;padding:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  border:4px solid var(--ink);background:var(--white);color:var(--ink);
  font-family:var(--mono);font-weight:700;cursor:pointer;
  box-shadow:var(--sh-sm);
}
.px-lamp__digit{font-size:26px;line-height:1}
.px-lamp__ico{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2}
.px-lamp[data-on="1"]{background:var(--yellow);color:var(--ink);box-shadow:var(--sh-sm)}
.px-lamp[data-on="1"] .px-lamp__glow{fill:var(--yellow)}
.px-lamp[data-on="0"]{background:var(--white);color:#5b6070}
.px-lamp[data-on="0"] .px-lamp__glow{fill:var(--paper)}
.px-lamp:active{transform:translate(2px,2px);box-shadow:none}
.px-lamp--hit{animation:px-flash .3s steps(1,end) 2}

/* ---------- 指令积木 ---------- */
.px-block{
  min-height:var(--tap);min-width:118px;padding:0 var(--sp2);
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:4px solid var(--ink);background:var(--white);color:var(--ink);
  font-family:var(--mono);font-size:16px;font-weight:700;letter-spacing:.04em;
  cursor:pointer;box-shadow:var(--sh-sm);user-select:none;
}
.px-block:hover{background:var(--yellow)}
.px-block:active{transform:translate(2px,2px);box-shadow:none}
.px-block--move{background:var(--blue)}
.px-block--turn{background:var(--green)}
.px-block--loop{background:var(--yellow)}
.px-block--move:hover,.px-block--turn:hover,.px-block--loop:hover{background:var(--white)}

.px-slot{
  min-height:var(--tap);width:100%;
  display:flex;align-items:center;gap:8px;padding:0 var(--sp2);
  border:4px solid var(--ink);background:var(--white);
  font-size:16px;font-weight:700;
}
.px-slot--empty{background:var(--paper);border-style:dashed;color:#8a8f9c;justify-content:center}
.px-slot--run{background:var(--yellow)}

/* ---------- 迷宫 / 像素网格板 ---------- */
.px-board{display:grid;gap:4px;background:var(--ink);border:4px solid var(--ink);padding:4px;width:max-content}
.px-cell{
  width:64px;height:64px;display:flex;align-items:center;justify-content:center;
  background:var(--paper);font-size:26px;
}
.px-cell--wall{background:var(--ink)}
.px-cell--goal{background:var(--yellow)}
.px-cell--star{background:var(--blue)}
.px-cell--trap{background:var(--red)}
.px-cell--player{background:var(--green)}
.px-cell__ico{width:40px;height:40px}

/* ---------- 表单 ---------- */
.px-input{
  width:100%;min-height:var(--tap);padding:0 var(--sp2);
  border:4px solid var(--ink);border-radius:0;background:var(--white);color:var(--ink);
  font-family:var(--mono);font-size:20px;letter-spacing:.06em;
}
.px-input::placeholder{color:#9aa0ae}
.px-label{display:block;font-size:15px;font-weight:700;letter-spacing:.06em;margin-bottom:6px;text-transform:uppercase}

.px-meter{display:flex;gap:6px;margin-top:var(--sp1)}
.px-meter__bar{height:26px;flex:1;border:3px solid var(--ink);background:var(--white)}
.px-meter__bar.is-on{background:var(--red)}
.px-meter__bar.is-on.lv2{background:var(--yellow)}
.px-meter__bar.is-on.lv3{background:var(--blue)}
.px-meter__bar.is-on.lv4{background:var(--green)}

/* ---------- 弹窗 / 提示 ---------- */
.px-mask{position:fixed;inset:0;background:rgba(26,28,44,.78);display:flex;align-items:center;justify-content:center;padding:var(--sp3);z-index:60}
.px-mask[hidden]{display:none}
.px-dialog{max-width:660px;width:100%;max-height:88vh;overflow:auto}
.px-toast{
  position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:80;
  padding:14px var(--sp3);border:4px solid var(--ink);background:var(--yellow);
  font-weight:700;box-shadow:var(--sh);max-width:90vw;text-align:center;
}
.px-toast[hidden]{display:none}
.px-toast--bad{background:var(--red);color:var(--white)}
.px-toast--good{background:var(--green)}

/* ---------- 星球地图（首页） ---------- */
.px-space{position:relative;background:var(--ink);border:4px solid var(--ink);overflow:hidden;padding:var(--sp4)}
.px-star{position:absolute;background:var(--paper);opacity:.75}
.px-star--y{background:var(--yellow)}
.px-star--b{background:var(--blue)}
.px-planet{
  position:relative;z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:var(--sp1);
  width:100%;padding:var(--sp3) var(--sp2);
  border:4px solid var(--ink);background:var(--white);
  box-shadow:var(--sh-lg);text-decoration:none;cursor:pointer;
}
.px-planet:hover{background:var(--yellow);box-shadow:var(--sh-sm);transform:translate(4px,4px)}
.px-planet:active{transform:translate(6px,6px);box-shadow:none}
.px-planet__ico{width:88px;height:88px}
.px-planet__name{font-size:19px;font-weight:700;text-align:center;line-height:1.3}
.px-planet__desc{font-size:14px;text-align:center;line-height:1.5}
.px-planet__no{font-size:13px;letter-spacing:.14em;color:#5b6070}
.px-planet--done{background:var(--gb1);border-color:var(--gb4)}
.px-planet--done:hover{background:var(--yellow)}
.px-planet[aria-disabled="true"]{background:var(--paper);color:#8a8f9c;box-shadow:var(--sh-sm);cursor:not-allowed}
.px-planet__mark{position:absolute;top:-14px;right:-14px}

/* ---------- 像素画（精灵） ---------- */
.px-pic{border:4px solid var(--ink);background:var(--white);padding:6px}
.px-pic--sel{background:var(--yellow);box-shadow:var(--sh)}
.px-pic--ok{background:var(--green)}
.px-pic--no{background:var(--red)}

/* ---------- 页脚 ---------- */
.px-foot{border-top:4px solid var(--ink);background:var(--white);padding:var(--sp3) 0;font-size:14px}
.px-foot a{text-decoration:none;border-bottom:3px solid var(--yellow)}

/* ---------- 论坛 ---------- */
.px-post{background:var(--white);border:4px solid var(--ink);box-shadow:var(--sh);padding:var(--sp3)}
.px-post__head{display:flex;align-items:center;gap:var(--sp2);margin-bottom:var(--sp2)}
.px-post__avatar{width:44px;height:44px;border:3px solid var(--ink);background:var(--paper);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.px-post__meta{font-size:13px;color:#5b6070;letter-spacing:.04em}
.px-post__cat{margin-left:auto}
.px-post__title{font-size:20px;font-weight:700;margin:var(--sp1) 0}
.px-post__body{font-size:16px;line-height:1.65}
.px-post__foot{display:flex;align-items:center;gap:var(--sp2);margin-top:var(--sp2);padding-top:var(--sp2);border-top:3px dashed var(--ink)}
.px-reply{background:var(--paper);border:3px solid var(--ink);padding:var(--sp2);margin-top:var(--sp2)}
.px-reply__head{display:flex;align-items:center;gap:var(--sp2);margin-bottom:6px;font-size:14px}
.px-reply__body{font-size:15px;line-height:1.6}

/* ---------- 课件上传 ---------- */
.px-upload{
  border:4px dashed var(--ink);background:var(--paper);padding:var(--sp4) var(--sp2);
  display:flex;flex-direction:column;align-items:center;gap:var(--sp2);text-align:center;
  cursor:pointer;
}
.px-upload:hover{background:var(--yellow);border-style:solid}
.px-upload:active{transform:translate(3px,3px);box-shadow:none}
.px-upload.is-active{background:var(--yellow);border-style:solid}
.px-file{display:flex;align-items:center;gap:var(--sp2);background:var(--white);border:4px solid var(--ink);box-shadow:var(--sh-sm);padding:var(--sp2)}
.px-file__meta{flex:1 1 auto;min-width:0}
.px-file__name{font-weight:700;font-size:16px;overflow-wrap:anywhere}
.px-file__info{font-size:13px;color:#5b6070}
.px-file__preview{background:var(--blue);color:var(--ink);border:3px solid var(--ink);padding:8px 14px;font-size:14px;font-weight:700}
.px-file__del{background:var(--red);color:var(--white);border:3px solid var(--ink);padding:8px 14px;font-size:14px;font-weight:700}

/* ---------- 用户徽章（HUD 内） ---------- */
.px-user{display:inline-flex;align-items:center;gap:8px;background:var(--gb3);color:var(--gb1);border:3px solid var(--paper);padding:6px 12px;font-size:14px;font-weight:700}
.px-user__avatar{width:28px;height:28px;border:2px solid var(--paper);background:var(--gb1);color:var(--gb4);display:flex;align-items:center;justify-content:center}

/* ---------- 社区星球 ---------- */
.px-commu{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp3)}
@media (max-width:640px){.px-commu{grid-template-columns:1fr}}

/* ---------- 动效（全部 steps 硬切，禁止平滑插值） ---------- */
@keyframes px-flash{0%{background:var(--yellow)}100%{background:var(--green)}}
@keyframes px-blink{0%{opacity:1}100%{opacity:0}}
@keyframes px-pop{0%{transform:scale(1)}100%{transform:scale(1.12)}}
@keyframes px-hop{0%{transform:translateY(0)}100%{transform:translateY(-10px)}}
@keyframes px-shake{0%{transform:translateX(0)}100%{transform:translateX(6px)}}
.px-anim-blink{animation:px-blink .9s steps(1,end) infinite}
.px-anim-pop{animation:px-pop .35s steps(1,end) 3}
.px-anim-hop{animation:px-hop .3s steps(1,end) 2}
.px-anim-shake{animation:px-shake .1s steps(1,end) 4}

@media (prefers-reduced-motion: reduce){
  .px-anim-blink,.px-anim-pop,.px-anim-hop,.px-anim-shake,.px-badge--new,.px-lamp--hit{animation:none !important}
}

/* ---------- 响应式 ---------- */
@media (max-width:720px){
  body{font-size:16px}
  .px-hud__title{font-size:17px}
  .px-btn{font-size:17px;padding:0 var(--sp2)}
  .px-btn--lg{font-size:19px}
  .px-wrap{width:94vw}
  .px-cell{width:52px;height:52px}
  .px-cell__ico{width:32px;height:32px}
  .px-lamp{width:60px;height:74px}
  .px-badge{width:120px}
  .px-block{min-width:104px;font-size:15px}
}
@media (max-width:520px){
  .px-cell{width:42px;height:42px}
  .px-lamp{width:52px;height:66px}
  .px-lamp__digit{font-size:22px}
}

/* ============================================================
   夜间模式（GameBoy 反色板）
   ============================================================ */
:root[data-theme="dark"]{
  --ink:#f4f4f4;
  --paper:#1a1c2c;
  --white:#2b2e44;
  --red:#ff004d;
  --green:#00e436;
  --blue:#29adff;
  --yellow:#ffec27;
  --gb1:#0f380f;
  --gb2:#306230;
  --gb3:#8bac0f;
  --gb4:#9bbc0f;
  --sh-sm:2px 2px 0 #000;
  --sh:4px 4px 0 #000;
  --sh-lg:6px 6px 0 #000;
}
:root[data-theme="dark"] body{background:#11121c;color:var(--ink)}
:root[data-theme="dark"] .px-card{background:var(--white)}
:root[data-theme="dark"] .px-btn{background:var(--paper);color:var(--ink)}
:root[data-theme="dark"] .px-btn--blue{background:var(--blue);color:var(--ink)}
:root[data-theme="dark"] .px-btn--green{background:var(--green);color:var(--ink)}
:root[data-theme="dark"] .px-btn--red{background:var(--red);color:var(--white)}
:root[data-theme="dark"] .px-btn--yellow{background:var(--yellow);color:var(--ink)}
:root[data-theme="dark"] .px-btn--gb{background:var(--gb3);color:var(--paper)}
:root[data-theme="dark"] .px-chip{background:var(--white)}
:root[data-theme="dark"] .px-hud{background:#0c0d14;border-bottom-color:#000}
:root[data-theme="dark"] .px-foot{background:#0c0d14;border-top-color:#000}
:root[data-theme="dark"] .px-lamp{background:var(--white)}
:root[data-theme="dark"] .px-badge{background:var(--white)}
:root[data-theme="dark"] .px-block{background:var(--white)}
:root[data-theme="dark"] .px-slot{background:var(--white)}
:root[data-theme="dark"] .px-cell{background:var(--white)}
:root[data-theme="dark"] .px-post{background:var(--white)}
:root[data-theme="dark"] .px-file{background:var(--white)}
:root[data-theme="dark"] .px-card--flat{background:var(--white)}

/* ============================================================
   成就系统
   ============================================================ */
.px-ach{background:var(--white);border:4px solid var(--ink);box-shadow:var(--sh);padding:var(--sp3);display:flex;align-items:center;gap:var(--sp2);min-height:96px}
.px-ach__ico{width:56px;height:56px;border:3px solid var(--ink);background:var(--paper);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.px-ach__ico.is-lock{background:#c9cddb;color:#5b6070}
.px-ach__body{flex:1 1 auto;min-width:0}
.px-ach__name{font-size:18px;font-weight:700;letter-spacing:.04em}
.px-ach__desc{font-size:14px;color:#5b6070;margin-top:4px}
.px-ach.is-lock .px-ach__name{color:#5b6070}
.px-ach.is-lock .px-ach__desc{color:#8a8f9c}

/* 成就解锁弹窗 */
.px-ach-unlock{background:var(--white);border:4px solid var(--ink);box-shadow:var(--sh-lg);padding:var(--sp4);text-align:center}
.px-ach-unlock .px-ach__ico{margin:0 auto var(--sp2);width:80px;height:80px}

/* ============================================================
   像素画板（Pixel Canvas）
   ============================================================ */
.px-paint-tools{display:flex;gap:var(--sp1);flex-wrap:wrap;margin-bottom:var(--sp2);align-items:center}
.px-paint-tools .px-swatch{width:40px;height:40px;border:3px solid var(--ink);cursor:pointer}
.px-paint-tools .px-swatch.is-sel{box-shadow:var(--sh-sm);transform:translate(2px,2px)}
.px-paint-grid{display:grid;background:var(--paper);border:4px solid var(--ink);box-shadow:var(--sh);padding:2px;margin:var(--sp2) auto}
.px-paint-grid .px-paint-cell{cursor:pointer}
.px-paint-grid .px-paint-cell:active{transform:translate(1px,1px)}
.px-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--sp2);margin-top:var(--sp3)}
.px-gallery__item{background:var(--white);border:4px solid var(--ink);box-shadow:var(--sh-sm);padding:var(--sp1)}
.px-gallery__item canvas{width:100%;height:auto;display:block;background:#e8e8e8;border:2px solid var(--ink)}
.px-gallery__item .px-gallery__meta{display:flex;justify-content:space-between;align-items:center;margin-top:6px;font-size:13px}

/* ============================================================
   豆苗词典（翻转卡片）
   ============================================================ */
.px-dict-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp2);perspective:1000px}
.px-dict-card{height:180px;cursor:pointer;position:relative}
.px-dict-card__inner{position:absolute;inset:0;transform-style:preserve-3d;transition:none}
.px-dict-card.is-flip .px-dict-card__inner{transform:rotateY(180deg)}
.px-dict-card__face{position:absolute;inset:0;background:var(--white);border:4px solid var(--ink);box-shadow:var(--sh);padding:var(--sp3);display:flex;flex-direction:column;align-items:center;justify-content:center;backface-visibility:hidden;text-align:center}
.px-dict-card__face--back{background:var(--yellow);transform:rotateY(180deg)}
.px-dict-card__face h3{font-size:22px;margin-bottom:var(--sp1)}
.px-dict-card__face p{font-size:15px;line-height:1.7}
.px-dict-card__face .px-ico{margin-bottom:var(--sp1)}

/* ============================================================
   家长说明页
   ============================================================ */
.px-parent-card{background:var(--white);border:4px solid var(--ink);box-shadow:var(--sh);padding:var(--sp3);margin-bottom:var(--sp2)}
.px-parent-card h3{font-size:20px;margin-bottom:var(--sp2);display:flex;align-items:center;gap:var(--sp1)}
.px-parent-card ul{list-style:none;padding:0}
.px-parent-card li{padding:var(--sp1) 0;border-bottom:3px dashed var(--ink);font-size:15px;line-height:1.7}
.px-parent-card li:last-child{border-bottom:none}
.px-parent-card strong{color:var(--red)}

/* ============================================================
   每日挑战
   ============================================================ */
.px-daily-card{background:var(--white);border:4px solid var(--ink);box-shadow:var(--sh);padding:var(--sp4);text-align:center}
.px-daily-card h2{font-size:26px;margin-bottom:var(--sp2)}
.px-daily-q{font-size:18px;margin:var(--sp3) 0;line-height:1.6}
.px-daily-opts{display:flex;flex-direction:column;gap:var(--sp1);margin-top:var(--sp2)}
.px-daily-opt{background:var(--paper);border:4px solid var(--ink);padding:var(--sp2);font-size:16px;cursor:pointer;text-align:left;box-shadow:var(--sh-sm)}
.px-daily-opt:hover{background:var(--yellow)}
.px-daily-opt:active{transform:translate(2px,2px);box-shadow:none}
.px-daily-opt.is-on{background:var(--blue);color:var(--ink)}
.px-daily-opt.is-correct{background:var(--green);color:var(--ink)}
.px-daily-opt.is-wrong{background:var(--red);color:var(--white)}

/* ============================================================
   关卡过场动画
   ============================================================ */
.px-transition{position:fixed;inset:0;background:var(--ink);color:var(--paper);z-index:9999;display:flex;align-items:center;justify-content:center;pointer-events:none;animation:px-trans-in .5s steps(1,end) forwards}
@keyframes px-trans-in{0%{opacity:0}100%{opacity:1}}
@keyframes px-trans-out{0%{opacity:1}100%{opacity:0}}
.px-transition.out{animation:px-trans-out .5s steps(1,end) forwards}
.px-transition__text{font-size:clamp(28px,6vw,52px);font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--yellow);text-align:center}
.px-transition__sub{font-size:16px;color:var(--paper);margin-top:var(--sp2);letter-spacing:.06em}
