/* Source component: 动态跳转按钮_clean.html
   Ported with scoped class names; original arrow, bubble and cubic-bezier structure retained. */
.samui-flow {
  --samui-flow-ink: var(--text);
  --samui-flow-fill: #171719;
  --samui-flow-on-fill: #fff;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  overflow: hidden;
  border: 1.5px solid color-mix(in srgb, var(--samui-flow-ink) 34%, transparent);
  border-radius: 100px;
  background: transparent;
  padding: 12px 32px;
  color: var(--samui-flow-ink);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition: all .6s cubic-bezier(.23, 1, .32, 1);
}

.samui-flow:hover,
.samui-flow:focus-visible {
  border-color: transparent;
  border-radius: 12px;
  color: var(--samui-flow-on-fill);
}

.samui-flow:active { transform: scale(.95); }

.samui-flow__text {
  position: relative;
  z-index: 2;
  transform: translateX(-12px);
  transition: transform .8s ease-out;
}

.samui-flow:hover .samui-flow__text,
.samui-flow:focus-visible .samui-flow__text { transform: translateX(12px); }

.samui-flow__bubble {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--samui-flow-fill);
  opacity: 0;
  transform: translate(-50%, -50%);
  transition: width .8s cubic-bezier(.19, 1, .22, 1), height .8s cubic-bezier(.19, 1, .22, 1), opacity .8s;
}

.samui-flow:hover .samui-flow__bubble,
.samui-flow:focus-visible .samui-flow__bubble { width: 220px; height: 220px; opacity: 1; }

.samui-flow__arrow {
  position: absolute;
  z-index: 3;
  width: 16px;
  height: 16px;
  fill: none;
  stroke: var(--samui-flow-ink);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: all .8s cubic-bezier(.34, 1.56, .64, 1);
}

.samui-flow__arrow--left { left: -25%; }
.samui-flow__arrow--right { right: 16px; }
.samui-flow:hover .samui-flow__arrow--left,
.samui-flow:focus-visible .samui-flow__arrow--left { left: 16px; stroke: var(--samui-flow-on-fill); }
.samui-flow:hover .samui-flow__arrow--right,
.samui-flow:focus-visible .samui-flow__arrow--right { right: -25%; stroke: var(--samui-flow-on-fill); }
.samui-flow--wide { width: 100%; min-height: 52px; }
.samui-flow--compact { min-height: 42px; padding: 10px 25px; font-size: 13px; }
.samui-flow[aria-busy="true"],
.samui-flow[aria-disabled="true"] { pointer-events: none; opacity: .76; cursor: wait; }

/* Source component: github流光按钮_clean.html
   Ported with scoped class names; original liquid SVG layers, blur, edge layers and mix-blend modes retained. */
.samui-github {
  position: relative;
  display: block;
  width: 184px;
  height: 48px;
  border: 2px solid #111;
  border-radius: 10px;
  background: #fff;
  color: #fff;
  text-decoration: none;
}

.samui-github > * { pointer-events: none; }
.samui-github__glow {
  display: block;
  position: absolute;
  width: 112.81%;
  height: 128.57%;
  top: 8.57%;
  left: 50%;
  transform: translateX(-50%);
  filter: blur(19px);
  opacity: .46;
}

.samui-github__glow::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 10px;
  background: #d9d9d9;
  filter: blur(6.5px);
}

.samui-github__liquid { display: block; position: relative; width: 100%; height: 100%; overflow: hidden; border-radius: 10px; }
.samui-github__blob { position: absolute; left: 50%; top: 50%; display: block; mix-blend-mode: difference; }
.samui-github__blob svg { display: block; width: 100%; height: 100%; overflow: hidden; }
.samui-github__b1,
.samui-github__b2,
.samui-github__b3 { width: 443px; height: 121px; }
.samui-github__b4,
.samui-github__b5,
.samui-github__b6,
.samui-github__b7 { width: 756px; height: 207px; }
.samui-github__b1 { transform: translate(-50%, -50%); }
.samui-github__b2 { transform: translate(-50%, -50%) rotate(164.971deg); }
.samui-github__b3 { transform: translate(-53%, -53%) rotate(-11.61deg); }
.samui-github__b4 { transform: translate(-50%, -57%) rotate(-179.012deg); }
.samui-github__b5 { transform: translate(-57%, -50%) rotate(-29.722deg); }
.samui-github__b6 { transform: translate(-62%, -24%) rotate(160.227deg); }
.samui-github__b7 { transform: translate(-67%, -29%) rotate(180deg); mix-blend-mode: hard-light; }
.samui-github__shadow {
  display: block;
  position: absolute;
  left: 50%;
  top: 50%;
  width: 92.23%;
  height: 112.85%;
  transform: translate(-50%, -40%);
  border-radius: 10px;
  background: #171719;
  filter: blur(7.3px);
}

.samui-github__surface { display: block; position: relative; width: 100%; height: 100%; overflow: hidden; border-radius: 10px; background: #09090a; }
.samui-github__surface > .samui-github__liquid { position: absolute; inset: 0; }
.samui-github__edge { position: absolute; inset: 0; border: 3px solid #e5e7eb; border-radius: 10px; mix-blend-mode: overlay; }
.samui-github__e1,
.samui-github__e2 { filter: blur(3px); }
.samui-github__e3 { filter: blur(5px); }
.samui-github__e4,
.samui-github__e5 { filter: blur(4px); }
.samui-github__inner {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 70.8%;
  height: 42.85%;
  transform: translate(-50%, -40%);
  border-radius: 10px;
  background: #223754;
  filter: blur(15px);
}

.samui-github__label {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 0 16px;
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .025em;
  white-space: nowrap;
  transition: color .15s;
}

.samui-github__icon { width: 21px; height: 21px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: fill .15s, color .15s; }
.samui-github__star { display: none; }
.samui-github__octocat { display: block; }
.samui-github:hover .samui-github__label,
.samui-github:focus-visible .samui-github__label { color: #dceaff; }
.samui-github:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }

/* Source component: 价格表_clean.html
   The original circle/ellipse, double-rect and three-path SVG layers and spring formulas are retained for MOD cards and fallback covers. */
.samui-price-shape {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: .2;
  transition: transform 1s cubic-bezier(.68, -.55, .27, 1.55);
}

.samui-price-shape > * {
  fill: currentColor;
  transform-box: fill-box;
  transform-origin: center;
  transition: transform 1s cubic-bezier(.68, -.55, .27, 1.55);
}

.mod-card--v1:hover .samui-price-shape { transform: scale(1.5); }
.mod-card--v1:hover .samui-price-shape__circle { transform: translateY(-25px) scaleY(.5); }
.mod-card--v1:hover .samui-price-shape__ellipse { transform: translateY(-25px) scaleY(2.25); }
.mod-card--v2:hover .samui-price-shape { transform: scale(1.05); }
.mod-card--v2 .samui-price-shape__r1,
.mod-card--v2 .samui-price-shape__r2 { transition-delay: .2s; }
.mod-card--v2:hover .samui-price-shape__r1 { transform: translateY(207px) rotate(90deg) scaleX(2); }
.mod-card--v2:hover .samui-price-shape__r2 { transform: translateY(-207px) rotate(90deg) scaleX(2); }
.mod-card--v3:hover .samui-price-shape { transform: scale(1.25); }
.mod-card--v3 .samui-price-shape__p1,
.mod-card--v4 .samui-price-shape__p1 { transition-delay: .3s; }
.mod-card--v3 .samui-price-shape__p2,
.mod-card--v4 .samui-price-shape__p2 { transition-delay: .2s; }
.mod-card--v3 .samui-price-shape__p3,
.mod-card--v4 .samui-price-shape__p3 { transition-delay: .1s; }
.mod-card--v3:hover .samui-price-shape path,
.mod-card--v4:hover .samui-price-shape path { transform: translateY(-50px); }
.mod-card--v4 .samui-price-shape { transform: scaleX(-1); }
.mod-card--v4:hover .samui-price-shape { transform: scale(-1.25, 1.25); }

:root {
  --mod-indigo: #deddf0;
  --mod-rose: #ead8dc;
  --mod-sage: #d9e1d4;
  --mod-sand: #e7ddce;
  --mod-indigo-ink: #625f82;
  --mod-rose-ink: #8a626c;
  --mod-sage-ink: #60755b;
  --mod-sand-ink: #80694e;
}

:root[data-theme="dark"] {
  --mod-indigo: #2d2b3a;
  --mod-rose: #37282d;
  --mod-sage: #293229;
  --mod-sand: #362f26;
  --mod-indigo-ink: #aba7cf;
  --mod-rose-ink: #c59aa5;
  --mod-sage-ink: #9fb697;
  --mod-sand-ink: #c0aa89;
}

.mod-card {
  border: 0;
  border-radius: 14px;
  background: var(--surface);
  box-shadow: 0 12px 34px rgb(29 27 23 / 7%);
}

.mod-card:hover {
  border-color: transparent;
  box-shadow: 0 19px 42px rgb(29 27 23 / 11%);
}

.mod-card__media { border-bottom: 0; background: var(--surface-muted); }
.mod-card__media > img { position: relative; z-index: 1; filter: saturate(.78) contrast(.96); }
.mod-card--v1 .mod-card__media { background: var(--mod-indigo); color: var(--mod-indigo-ink); }
.mod-card--v2 .mod-card__media { background: var(--mod-rose); color: var(--mod-rose-ink); }
.mod-card--v3 .mod-card__media { background: var(--mod-sage); color: var(--mod-sage-ink); }
.mod-card--v4 .mod-card__media { background: var(--mod-sand); color: var(--mod-sand-ink); }
.mod-card__media > img + .samui-price-shape { mix-blend-mode: soft-light; opacity: .36; }
.mod-card__placeholder { position: relative; z-index: 3; background: transparent; color: var(--text); }
.mod-card__placeholder::before,
.mod-card__placeholder::after,
.mod-card__placeholder > i { display: none; }
.mod-card__placeholder > span { color: currentColor; font-family: var(--font-body); font-size: .7rem; letter-spacing: .02em; text-transform: none; }
.mod-card__placeholder > strong { max-width: 88%; font-size: clamp(1.35rem, 3vw, 1.8rem); line-height: 1.04; }
.mod-card__placeholder > small { font-size: .72rem; }
.mod-card__body { gap: .65rem; padding: 1.05rem 1.05rem .8rem; }
.mod-card__meta { font-family: var(--font-body); font-size: .72rem; }
.mod-card__footer { border-top: 0; background: var(--surface-muted); padding: .72rem 1rem; }
.mod-card__footer .samui-flow { flex: none; }

/* Representative MOD detail first screen: neutral surfaces; no archive diagram or decorative blueprint layers. */
.mod-detail { padding-block: clamp(2rem, 5vw, 4rem); }
.mod-detail__hero { grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr); gap: clamp(1.8rem, 4.5vw, 4.3rem); align-items: center; }
.mod-cover { border: 0; border-radius: 22px; background: var(--surface-muted); box-shadow: 0 22px 58px rgb(25 24 21 / 11%); }
.mod-cover img { width: 100%; height: 100%; object-fit: cover; }
.mod-cover-placeholder { position: relative; background: var(--mod-indigo); color: var(--mod-indigo-ink); }
.mod-cover-placeholder::before,
.mod-cover-placeholder::after,
.mod-cover-placeholder > i { display: none; }
.mod-cover-placeholder .samui-price-shape { z-index: 0; opacity: .26; }
.mod-cover-placeholder > span,
.mod-cover-placeholder > strong,
.mod-cover-placeholder > small { position: relative; z-index: 2; }
.mod-cover-placeholder > span { color: currentColor; font-family: var(--font-body); font-size: .72rem; letter-spacing: .02em; }
.mod-cover-placeholder > strong { max-width: 82%; font-size: clamp(2rem, 5vw, 4rem); line-height: .95; }
.mod-intro { gap: 1.05rem; }
.mod-intro__taxonomy { min-height: 0; }
.mod-intro__titleline { align-items: center; }
.mod-intro h1 { max-width: 11ch; font-size: clamp(2.5rem, 4.6vw, 4.45rem); line-height: .96; letter-spacing: -.05em; }
.mod-intro__summary { max-width: 47ch; font-size: 1.02rem; line-height: 1.68; }
.download-panel {
  gap: .9rem;
  overflow: visible;
  border: 0;
  border-radius: 16px;
  background: var(--surface-muted);
  padding: 1rem;
  box-shadow: none;
}
.download-panel::after { display: none; }
.download-panel__version { align-items: center; }
.download-panel__version > strong { color: var(--text); font-family: var(--font-body); font-size: .88rem; font-weight: 650; }
.release-kicker { color: var(--text-muted); font-size: .78rem; }
.download-panel__version h2 { margin-top: .15rem; font-size: 1.32rem; }
.download-panel__meta { gap: .65rem; }
.download-panel__meta span { border-left-color: var(--border); }
.download-panel__note { text-align: left; }
.hash-line { border-top-color: var(--border); }
.mod-actions { align-items: center; }

@media (max-width: 900px) {
  .mod-detail__hero { grid-template-columns: 1fr; align-items: start; }
  .mod-intro h1 { max-width: 16ch; }
}

@media (max-width: 560px) {
  .samui-flow { padding-inline: 27px; }
  .samui-flow--compact { padding-inline: 22px; }
  .mod-detail__hero { gap: 1.4rem; }
  .mod-cover { border-radius: 15px; }
  .mod-intro h1 { font-size: clamp(2.15rem, 12vw, 3.2rem); }
  .download-panel__meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .samui-github { width: 100%; }
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --mod-indigo: #2d2b3a;
    --mod-rose: #37282d;
    --mod-sage: #293229;
    --mod-sand: #362f26;
    --mod-indigo-ink: #aba7cf;
    --mod-rose-ink: #c59aa5;
    --mod-sage-ink: #9fb697;
    --mod-sand-ink: #c0aa89;
  }
}

@media (prefers-reduced-motion: reduce) {
  .samui-flow,
  .samui-flow__text,
  .samui-flow__bubble,
  .samui-flow__arrow,
  .samui-price-shape,
  .samui-price-shape > * { transition: none !important; transform: none !important; }
  .samui-flow__bubble { display: none; }
}
