/* T1c · 光效层 + 生活感动效 · 美术 DELIV
 * 嵌 T1b-LIFE；减动效（prefers-reduced-motion / html.reduce-motion / html.skl-reduce-motion）仍生效
 * 禁侵权 IP · pointer-events:none on FX · PUBLIC-NO-95
 */
:root {
  --life-ease: cubic-bezier(.22,.61,.36,1);
  --life-breathe: 4s;
  --life-float: 6s;
  --life-roll: 10s;
  --glow-gold: rgba(240,180,58,.42);
  --glow-soft: rgba(240,180,58,.14);
  --neon-line: rgba(255,207,107,.35);
}

/* —— core life (T1b) —— */
@keyframes skl-breathe {
  0%, 100% { box-shadow: 0 0 0 1px rgba(240,180,58,.22), 0 0 24px rgba(240,180,58,.08); }
  50% { box-shadow: 0 0 0 1px rgba(240,180,58,.42), 0 0 42px rgba(240,180,58,.2), 0 0 80px rgba(240,180,58,.08); }
}
@keyframes skl-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes skl-dung-roll {
  /* SKL-T1B-07: rotate in place — no translate that leaves avatar */
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes skl-dung-bob {
  0%, 100% { margin-top: 0; }
  50% { margin-top: -2px; }
}
@keyframes skl-progress-in {
  from { stroke-dashoffset: var(--skl-circ, 283); }
  to { stroke-dashoffset: var(--skl-target, 0); }
}
@keyframes skl-phase-out {
  to { opacity: 0; transform: translateY(-12px); }
}
@keyframes skl-phase-in {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes skl-copy-ok {
  0% { transform: scale(1); }
  40% { transform: scale(1.06); }
  100% { transform: scale(1); }
}

/* —— T1c light layer —— */
@keyframes skl-aurora-drift {
  from { transform: translate3d(-2%, -1%, 0) scale(1); opacity: .55; }
  to { transform: translate3d(3%, 2%, 0) scale(1.06); opacity: .85; }
}
@keyframes skl-grid-shift {
  from { background-position: 0 0, 0 0; }
  to { background-position: 56px 28px, 28px 56px; }
}
@keyframes skl-orb-wander {
  0% { transform: translate(0, 0) scale(1); opacity: .35; }
  50% { transform: translate(12%, -8%) scale(1.15); opacity: .55; }
  100% { transform: translate(-6%, 10%) scale(.95); opacity: .4; }
}
@keyframes skl-mint-sheen {
  0%, 35% { transform: translateX(-130%) skewX(-12deg); }
  60%, 100% { transform: translateX(130%) skewX(-12deg); }
}
@keyframes skl-ring-pulse {
  0%, 100% { filter: drop-shadow(0 0 0 transparent); }
  50% { filter: drop-shadow(0 0 8px rgba(240,180,58,.45)); }
}
@keyframes skl-topbar-edge {
  0%, 100% { border-bottom-color: rgba(240,180,58,.12); }
  50% { border-bottom-color: rgba(240,180,58,.28); }
}

.mint-card, .mint-shell {
  animation: skl-breathe var(--life-breathe) ease-in-out infinite;
  position: relative;
}
.hero-avatar, .mint-avatar {
  animation: skl-float var(--life-float) ease-in-out infinite;
  filter: drop-shadow(0 0 18px rgba(240,180,58,.28));
}
.dung-ball {
  animation: skl-dung-roll var(--life-roll) linear infinite;
  transform-origin: center;
}
.progress-ring__value {
  transition: stroke-dashoffset .8s var(--life-ease);
  animation: skl-ring-pulse 3.6s ease-in-out infinite;
}
.phase-a.is-leaving { animation: skl-phase-out .42s var(--life-ease) forwards; }
.phase-b.is-entering { animation: skl-phase-in .42s var(--life-ease) both; }
.btn-mint:active { transform: scale(.97); transition: transform .12s var(--life-ease); }
.btn-mint:hover { filter: brightness(1.05); }
.copy-chip.is-copied { animation: skl-copy-ok .32s var(--life-ease); }

/* FX layers — never block clicks */
.aurora, .grid-fx, .spark-canvas, .fx-orbs, .fx-orbs span,
.mint-shell::before, .mint-shell::after, .btn-mint::after {
  pointer-events: none !important;
}
.aurora {
  animation: skl-aurora-drift 18s ease-in-out infinite alternate;
}
.grid-fx {
  animation: skl-grid-shift 24s linear infinite;
}
.fx-orbs {
  position: fixed; inset: 0; z-index: 0; overflow: hidden;
}
.fx-orbs span {
  position: absolute; width: 42vw; height: 42vw; border-radius: 50%;
  background: radial-gradient(circle, var(--glow-soft), transparent 68%);
  filter: blur(12px);
  animation: skl-orb-wander 22s ease-in-out infinite alternate;
}
.fx-orbs span:nth-child(1) { top: 8%; left: -8%; }
.fx-orbs span:nth-child(2) { top: 45%; right: -12%; animation-duration: 28s; animation-delay: -6s; }
.fx-orbs span:nth-child(3) { bottom: -10%; left: 30%; width: 28vw; height: 28vw; animation-duration: 20s; }

.mint-shell::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,.08) 50%, transparent 60%);
  transform: translateX(-130%);
  animation: skl-mint-sheen 5.5s ease-in-out infinite;
  border-radius: inherit;
  mix-blend-mode: soft-light;
}
.topbar--glass {
  animation: skl-topbar-edge 6s ease-in-out infinite;
}

/* —— top-actions cluster (T1c U1) —— */
.top-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.lang-dd { display: none; position: relative; }
.lang-dd > summary {
  list-style: none;
  cursor: pointer;
  min-height: 44px; min-width: 72px;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 0 12px; border-radius: 999px;
  border: 1px solid rgba(240,180,58,.28);
  background: rgba(20,14,8,.7); color: var(--accent-hot, #ffcf6b);
  font-weight: 800; font-size: .75rem; letter-spacing: .06em;
  user-select: none;
}
.lang-dd > summary::-webkit-details-marker { display: none; }
.lang-dd[open] > summary { border-color: rgba(240,180,58,.55); box-shadow: 0 0 16px rgba(240,180,58,.18); }
.lang-dd-panel {
  position: absolute; right: 0; top: calc(100% + 6px); z-index: 50;
  min-width: 148px; padding: 6px;
  border-radius: 14px;
  border: 1px solid rgba(240,180,58,.28);
  background: rgba(12,10,8,.96);
  backdrop-filter: blur(12px);
  box-shadow: 0 16px 40px rgba(0,0,0,.45);
  display: grid; grid-template-columns: 1fr 1fr; gap: 4px;
}
.wallet-status-strip {
  display: none;
  margin: 0 0 10px;
  padding: 8px 12px;
  border-radius: 12px;
  border: 1px dashed rgba(240,180,58,.28);
  background: rgba(0,0,0,.22);
  color: var(--muted, #b39a78);
  font-size: .78rem;
}
.wallet-status-strip.is-on { display: block; color: var(--accent-hot, #ffcf6b); border-style: solid; }

@media (max-width: 768px) {
  .lang-switch.lang-switch--desktop { display: none !important; }
  .lang-dd { display: inline-block; }
  .top-actions { width: 100%; }
}

/* —— motion toggle (缺陷-6) —— */
.motion-toggle {
  display: inline-flex; align-items: center; gap: 8px;
  height: 28px; min-height: 28px; padding: 0 10px; border-radius: 999px;
  border: 1px solid rgba(232,168,56,.35);
  background: rgba(26,20,14,.72); color: #f7ecd8;
  font-size: 12px; cursor: pointer; user-select: none;
}
.motion-toggle[aria-pressed="true"] {
  border-color: rgba(240,180,58,.7);
  box-shadow: 0 0 16px rgba(240,180,58,.2);
  color: #ffcf6b;
}
.motion-toggle__knob {
  width: 14px; height: 14px; border-radius: 50%;
  background: #b39a78; transition: background .2s, transform .2s;
}
.motion-toggle[aria-pressed="true"] .motion-toggle__knob {
  background: #f0b43a; transform: translateX(2px);
}

/* —— reduce motion (system + page toggle) —— */
@media (prefers-reduced-motion: reduce) {
  .mint-card, .mint-shell, .hero-avatar, .mint-avatar, .dung-ball,
  .aurora, .grid-fx, .fx-orbs span, .progress-ring__value,
  .mint-shell::after, .topbar--glass, .btn-mint::after { animation: none !important; }
}
html.reduce-motion .mint-card,
html.reduce-motion .mint-shell,
html.reduce-motion .hero-avatar,
html.reduce-motion .mint-avatar,
html.reduce-motion .dung-ball,
html.reduce-motion .aurora,
html.reduce-motion .grid-fx,
html.reduce-motion .fx-orbs span,
html.reduce-motion .progress-ring__value,
html.reduce-motion .mint-shell::before,
html.reduce-motion .mint-shell::after,
html.reduce-motion .btn-mint::after,
html.reduce-motion .topbar--glass,
html.skl-reduce-motion .mint-card,
html.skl-reduce-motion .mint-shell,
html.skl-reduce-motion .hero-avatar,
html.skl-reduce-motion .mint-avatar,
html.skl-reduce-motion .dung-ball,
html.skl-reduce-motion .aurora,
html.skl-reduce-motion .grid-fx,
html.skl-reduce-motion .fx-orbs span,
html.skl-reduce-motion .progress-ring__value,
html.skl-reduce-motion .mint-shell::before,
html.skl-reduce-motion .mint-shell::after,
html.skl-reduce-motion .btn-mint::after,
html.skl-reduce-motion .topbar--glass {
  animation: none !important;
}
html.reduce-motion .progress-ring__value,
html.reduce-motion .phase-a,
html.reduce-motion .phase-b,
html.skl-reduce-motion .progress-ring__value,
html.skl-reduce-motion .phase-a,
html.skl-reduce-motion .phase-b {
  transition: none !important;
  animation: none !important;
}
html.reduce-motion .aurora,
html.reduce-motion .grid-fx,
html.reduce-motion .spark-canvas,
html.reduce-motion .fx-orbs,
html.skl-reduce-motion .aurora,
html.skl-reduce-motion .grid-fx,
html.skl-reduce-motion .spark-canvas,
html.skl-reduce-motion .fx-orbs { opacity: .35; }
