:root {    --ps-bg: #F7F4EE;    --ps-surface: #FFFCF8;    --ps-surface-2: #F3EEE6;    --ps-ink: #1E1B16;    --ps-ink-muted: #6B6458;    --ps-ink-faint: #9A9286;    --ps-accent: #2D5A4A;    --ps-accent-hover: #234539;    --ps-accent-soft: rgba(45, 90, 74, 0.1);    --ps-gold: #9A7B2F;    --ps-gold-soft: rgba(154, 123, 47, 0.12);    --ps-sapphire: #3D5A80;    --ps-sapphire-soft: rgba(61, 90, 128, 0.12);    --ps-success: #3A6B52;    --ps-warn: #A67C2E;    --ps-danger: #9B3D3D;    --ps-q1: #7A756C;    --ps-q2: #4A7C59;    --ps-q3: #4A6FA5;    --ps-q4: #2D5A4A;    --ps-q5: #B85C38;    --ps-q6: #9A7B2F;    --ps-border: rgba(30, 27, 22, 0.07);    --ps-border-strong: rgba(30, 27, 22, 0.12);    --ps-shadow-sm: 0 2px 8px rgba(45, 90, 74, 0.06);    --ps-shadow: 0 12px 40px rgba(30, 27, 22, 0.08);    --ps-shadow-lg: 0 24px 64px rgba(30, 27, 22, 0.1);    --ps-radius-xl: 20px;    --ps-radius: 16px;    --ps-radius-sm: 12px;    --ps-radius-xs: 8px;    --ps-ease: cubic-bezier(0.22, 1, 0.36, 1);    --ps-ease-snap: cubic-bezier(0.32, 0.72, 0, 1);    --ps-side-w: 228px;    --ps-top-h: 64px;    --ps-touch: 44px;    --ps-font: system-ui, -apple-system, 'Microsoft YaHei', 'PingFang SC', sans-serif;    --ps-page-gap: 18px;    --ps-main-pad-x: 18px;    --ps-main-pad-y: 16px;}[data-theme="dark"] {    --ps-bg: #1C1A17;    --ps-surface: #201E1A;    --ps-surface-2: #2A2722;    --ps-ink: #E4E0DA;    --ps-ink-muted: #9C978E;    --ps-ink-faint: #6B665E;    --ps-accent: #4AA87D;    --ps-accent-hover: #5CC494;    --ps-accent-soft: rgba(74, 168, 125, 0.15);    --ps-gold: #C9A84C;    --ps-gold-soft: rgba(201, 168, 76, 0.15);    --ps-sapphire: #6A94C4;    --ps-sapphire-soft: rgba(106, 148, 196, 0.15);    --ps-success: #4C8F6E;    --ps-warn: #C49A48;    --ps-danger: #B84D4D;    --ps-q1: #7A756C;    --ps-q2: #5A8C69;    --ps-q3: #6A94C4;    --ps-q4: #4AA87D;    --ps-q5: #C47048;    --ps-q6: #C9A84C;    --ps-border: rgba(228, 224, 218, 0.07);    --ps-border-strong: rgba(228, 224, 218, 0.12);    --ps-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.25);    --ps-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);    --ps-shadow-lg: 0 24px 64px rgba(0, 0, 0, 0.35);}*, *::before, *::after { box-sizing: border-box; }html {    height: 100%;    scroll-behavior: smooth;    -webkit-text-size-adjust: 100%;}html, body {    margin: 0;    padding: 0;    font-family: var(--ps-font);    color: var(--ps-ink);    -webkit-font-smoothing: antialiased;}body.ps-body {    height: 100%;    overflow: hidden;    background: var(--ps-bg);}body.ps-auth-body {    height: 100%;    overflow: hidden;    background: var(--ps-bg);}img { max-width: 100%; display: block; }a { color: inherit; text-decoration: none; }button, input, select, textarea { font: inherit; }button { cursor: pointer; border: none; background: none; }.ps-body {    height: 100%;    background:        radial-gradient(ellipse 80% 50% at 100% 0%, rgba(45, 90, 74, 0.06), transparent 55%),        radial-gradient(ellipse 60% 40% at 0% 100%, rgba(154, 123, 47, 0.05), transparent 50%),        var(--ps-bg);}.ps-body.is-modal-open {    overflow: hidden;}.ps-body::before {    content: '';    position: fixed;    inset: 0;    pointer-events: none;    opacity: 0.35;    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");    z-index: 0;}/* ?? Shell ?? */.ps-layout {    position: relative;    z-index: 1;    display: grid;    grid-template-columns: var(--ps-side-w) minmax(0, 1fr);    height: 100%;    max-height: 100dvh;    overflow: hidden;}.ps-side {    position: relative;    top: auto;    height: 100%;    max-height: 100dvh;    overflow: hidden;    display: flex;    flex-direction: column;    padding: 18px 10px calc(12px + env(safe-area-inset-bottom));    background: var(--ps-surface);    border-right: 1px solid var(--ps-border);    box-shadow: inset -1px 0 0 rgba(255, 252, 248, 0.6);    z-index: 40;}.ps-side-brand {    display: flex;    align-items: center;    gap: 10px;    padding: 2px 8px 16px;    margin-bottom: 2px;    border-bottom: 1px solid var(--ps-border);}.ps-side-mark {    width: 32px;    height: 32px;    border-radius: 9px;    background: var(--ps-accent);    color: #fff;    display: grid;    place-items: center;    font-size: 14px;    font-weight: 700;    flex-shrink: 0;}.ps-side-brand-text strong {    display: block;    font-size: 15px;    font-weight: 700;    letter-spacing: -0.02em;    line-height: 1.2;}.ps-side-nav {    flex: 1;    min-height: 0;    overflow-x: hidden;    overflow-y: auto;    -webkit-overflow-scrolling: touch;    display: flex;    flex-direction: column;    gap: 2px;    padding: 8px 0 6px;}.ps-nav-rail {    padding: 10px 0 6px;}.ps-nav-rail + .ps-nav-rail {    border-top: 1px solid var(--ps-border);    margin-top: 2px;    padding-top: 14px;}.ps-nav-rail-label {    display: block;    padding: 0 12px 7px;    font-size: 10px;    font-weight: 600;    letter-spacing: 0.1em;    text-transform: uppercase;    color: var(--ps-ink-faint);}.ps-nav-rail-list {    display: flex;    flex-direction: column;    gap: 1px;}.ps-nav-link {    display: flex;    align-items: center;    gap: 11px;    min-height: var(--ps-touch);    padding: 0 12px;    margin: 0 2px;    border-radius: 11px;    color: var(--ps-ink-muted);    font-size: 13px;    font-weight: 500;    transition: color 0.18s, background 0.18s var(--ps-ease);}.ps-nav-link > .layui-icon {    width: 18px;    font-size: 17px;    text-align: center;    flex-shrink: 0;    opacity: 0.76;    transition: opacity 0.18s, color 0.18s;}.ps-nav-link-text {    flex: 1;    min-width: 0;    line-height: 1.25;}.ps-nav-pip {    flex-shrink: 0;    min-width: 18px;    height: 18px;    padding: 0 5px;    border-radius: 999px;    background: var(--ps-accent);    color: #fff;    font-size: 10px;    font-weight: 700;    display: grid;    place-items: center;    font-variant-numeric: tabular-nums;}.ps-nav-link:hover {    color: var(--ps-ink);    background: var(--ps-surface-2);}.ps-nav-link:hover > .layui-icon { opacity: 1; }.ps-nav-link.is-active {    color: var(--ps-accent);    font-weight: 600;    background: var(--ps-accent-soft);}.ps-nav-link.is-active > .layui-icon {    opacity: 1;    color: var(--ps-accent);}.ps-nav-logout {    color: var(--ps-ink-muted);    margin: 0 2px;}.ps-nav-logout:hover {    color: var(--ps-danger);    background: rgba(155, 61, 61, 0.07);}.ps-nav-logout:hover > .layui-icon { color: var(--ps-danger); opacity: 1; }.ps-side-foot {    flex-shrink: 0;    margin-top: auto;    padding-top: 10px;    border-top: 1px solid var(--ps-border);}.ps-side-mask {    position: fixed;    inset: 0;    background: rgba(30, 27, 22, 0.4);    z-index: 35;    backdrop-filter: blur(4px);    opacity: 0;    transition: opacity 0.3s var(--ps-ease);    pointer-events: none;}.ps-layout.is-side-open .ps-side-mask {    opacity: 1;    pointer-events: auto;}.ps-main-wrap {    min-width: 0;    min-height: 0;    height: 100%;    display: flex;    flex-direction: column;    overflow: hidden;}/* ?? Topbar ?? */.ps-topbar {    position: relative;    top: auto;    flex-shrink: 0;    z-index: 30;    min-height: var(--ps-top-h);    display: flex;    align-items: center;    justify-content: space-between;    gap: 16px;    padding: 10px 20px;    background: rgba(247, 244, 238, 0.75);    backdrop-filter: blur(14px);    border-bottom: 1px solid var(--ps-border);}.ps-topbar-start {    display: flex;    align-items: center;    gap: 12px;    min-width: 0;}.ps-icon-btn { display: none; width: var(--ps-touch); height: var(--ps-touch); align-items: center; justify-content: center; border-radius: var(--ps-radius-xs); background: var(--ps-surface); border: 1px solid var(--ps-border); color: var(--ps-ink-muted); }.ps-icon-btn:active { opacity: 0.85; }.ps-topbar-title {    display: flex;    align-items: center;    gap: 12px;    min-width: 0;}.ps-topbar-icon {    width: 40px;    height: 40px;    border-radius: 12px;    background: var(--ps-surface);    border: 1px solid var(--ps-border);    display: grid;    place-items: center;    color: var(--ps-accent);    flex-shrink: 0;}.ps-topbar-kicker {    display: block;    font-size: 10px;    font-weight: 600;    letter-spacing: 0.1em;    text-transform: uppercase;    color: var(--ps-ink-faint);}.ps-topbar-title strong {    display: block;    font-size: 17px;    font-weight: 700;    letter-spacing: -0.02em;    line-height: 1.2;}.ps-topbar-user {    display: flex;    align-items: center;    gap: 8px;    margin-left: auto;}.ps-wallet-pill {    display: inline-flex;    align-items: center;    gap: 6px;    padding: 8px 12px;    border-radius: 999px;    background: var(--ps-surface);    border: 1px solid var(--ps-border);    font-size: 13px;    font-weight: 700;    font-variant-numeric: tabular-nums;    box-shadow: var(--ps-shadow-sm);}.ps-wallet-pill.is-gold { color: var(--ps-gold); border-color: rgba(154, 123, 47, 0.2); background: var(--ps-gold-soft); }.ps-wallet-pill.is-diamond { color: var(--ps-sapphire); border-color: rgba(61, 90, 128, 0.2); background: var(--ps-sapphire-soft); }.ps-profile-chip {    display: flex;    align-items: center;    gap: 10px;    padding: 6px 12px 6px 6px;    border-radius: 999px;    background: var(--ps-surface);    border: 1px solid var(--ps-border);    transition: border-color 0.2s, box-shadow 0.2s;}.ps-profile-chip:hover {    border-color: var(--ps-border-strong);    box-shadow: var(--ps-shadow-sm);}.ps-profile-avatar {    width: 32px;    height: 32px;    border-radius: 10px;    background: linear-gradient(135deg, var(--ps-accent), var(--ps-accent-hover));    color: #fff;    display: grid;    place-items: center;    font-size: 14px;    font-weight: 700;    text-transform: uppercase;}.ps-profile-meta {    display: flex;    flex-direction: column;    line-height: 1.15;    text-align: left;}.ps-profile-meta span {    font-size: 13px;    font-weight: 600;    max-width: 88px;    overflow: hidden;    text-overflow: ellipsis;    white-space: nowrap;}.ps-profile-meta small {    font-size: 10px;    color: var(--ps-ink-muted);}/* ?? Main & Dock ?? */#userMain.ps-main,.ps-main {    flex: 1;    min-height: 0;    padding: var(--ps-main-pad-y) var(--ps-main-pad-x) calc(var(--ps-main-pad-y) + env(safe-area-inset-bottom));    overflow-x: hidden;    overflow-y: auto;    -webkit-overflow-scrolling: touch;}/* ?? Page ?? */.ps-page {    width: 100%;    display: flex;    flex-direction: column;    gap: var(--ps-page-gap);}.ps-page-enter {    animation: none;}.ps-reveal,.ps-reveal.is-revealed {    opacity: 1;    transform: none;    animation: none;}.ps-kicker {    margin: 0 0 6px;    font-size: 11px;    font-weight: 700;    letter-spacing: 0.12em;    text-transform: uppercase;    color: var(--ps-accent);}.ps-page-head {    display: flex;    flex-wrap: wrap;    align-items: flex-end;    justify-content: space-between;    gap: 16px;}.ps-page-title {    margin: 0;    font-size: clamp(24px, 4.5vw, 32px);    font-weight: 700;    letter-spacing: -0.03em;    line-height: 1.15;    text-wrap: balance;}.ps-page-desc {    margin: 8px 0 0;    max-width: 52ch;    font-size: 14px;    line-height: 1.6;    color: var(--ps-ink-muted);}.ps-page-head-stats {    display: flex;    flex-wrap: wrap;    gap: 8px;}/* ?? Card system ?? */.ps-card {    border-radius: var(--ps-radius);    padding: 1px;    background: linear-gradient(145deg, rgba(255,255,255,0.9), rgba(30,27,22,0.06));    box-shadow: var(--ps-shadow-sm);}.ps-card-inner {    border-radius: calc(var(--ps-radius) - 1px);    background: var(--ps-surface);    padding: 18px;}.ps-panel {    background: var(--ps-surface);    border-radius: var(--ps-radius);    padding: 18px;    box-shadow: var(--ps-shadow-sm);}.ps-panel-head {    display: flex;    align-items: center;    justify-content: space-between;    gap: 12px;    margin-bottom: 14px;}.ps-panel-head h2 {    margin: 0;    font-size: 15px;    font-weight: 700;    display: flex;    align-items: center;    gap: 8px;}/* ?? Stats ?? */.ps-stat-chip {    min-width: 88px;    padding: 14px 16px;    border-radius: var(--ps-radius-sm);    background: var(--ps-surface);    border: 1px solid var(--ps-border);    box-shadow: var(--ps-shadow-sm);}.ps-stat-chip-val {    display: block;    font-size: 22px;    font-weight: 700;    font-variant-numeric: tabular-nums;    letter-spacing: -0.02em;    line-height: 1;}.ps-stat-chip-label {    display: block;    margin-top: 6px;    font-size: 11px;    font-weight: 600;    color: var(--ps-ink-muted);}.ps-stat-chip.is-gold .ps-stat-chip-val { color: var(--ps-gold); }.ps-stat-chip.is-diamond .ps-stat-chip-val { color: var(--ps-sapphire); }.ps-stat-chip.is-hot .ps-stat-chip-val { color: var(--ps-accent); }.ps-grid { display: grid; gap: 12px; }.ps-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }.ps-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }/* ?? Home bento ?? */.ps-bento {    display: grid;    grid-template-columns: 1.4fr 1fr;    grid-template-rows: auto auto;    gap: 14px;}.ps-bento-hero {    grid-row: span 2;    padding: 24px;    border-radius: var(--ps-radius-xl);    background:        linear-gradient(155deg, rgba(45, 90, 74, 0.92) 0%, rgba(35, 69, 57, 0.96) 100%);    color: #fff;    position: relative;    overflow: hidden;    box-shadow: 0 20px 50px rgba(45, 90, 74, 0.25);}.ps-bento-hero::after {    content: '';    position: absolute;    width: 200px;    height: 200px;    right: -40px;    top: -40px;    border-radius: 50%;    background: rgba(255, 255, 255, 0.06);}.ps-bento-hero h1 {    margin: 8px 0 0;    font-size: clamp(26px, 5vw, 34px);    font-weight: 700;    letter-spacing: -0.03em;    position: relative;}.ps-bento-hero p { margin: 10px 0 0; opacity: 0.82; font-size: 14px; position: relative; }.ps-bento-wallets {    display: flex;    gap: 10px;    margin-top: 22px;    position: relative;}.ps-bento-wallet {    flex: 1;    padding: 12px 14px;    border-radius: var(--ps-radius-sm);    background: rgba(255, 255, 255, 0.12);    backdrop-filter: blur(8px);}.ps-bento-wallet span { display: block; font-size: 10px; opacity: 0.75; letter-spacing: 0.06em; }.ps-bento-wallet strong { display: block; margin-top: 4px; font-size: 20px; font-variant-numeric: tabular-nums; }.ps-bento-stats {    display: grid;    grid-template-columns: repeat(2, 1fr);    gap: 10px;}.ps-mini-stat {    padding: 14px;    border-radius: var(--ps-radius-sm);    background: var(--ps-surface);    border: 1px solid var(--ps-border);}.ps-mini-stat strong {    display: block;    font-size: 20px;    font-variant-numeric: tabular-nums;    font-weight: 700;}.ps-mini-stat span { font-size: 11px; color: var(--ps-ink-muted); font-weight: 600; }.ps-home-split { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 14px; }.ps-feed { list-style: none; margin: 0; padding: 0; }.ps-feed li {    padding: 12px 0;    border-bottom: 1px solid var(--ps-border);}.ps-feed li:last-child { border-bottom: none; }.ps-feed time { font-size: 11px; color: var(--ps-ink-faint); font-variant-numeric: tabular-nums; }.ps-feed strong { display: block; margin-top: 4px; font-size: 14px; font-weight: 600; line-height: 1.4; }.ps-online-list {    list-style: none;    margin: 0;    padding: 0;    display: grid;    grid-template-columns: repeat(2, 1fr);    gap: 8px;}.ps-online-list li {    display: flex;    align-items: center;    gap: 8px;    padding: 8px 10px;    border-radius: var(--ps-radius-xs);    background: var(--ps-surface-2);    font-size: 13px;}.ps-online-dot {    width: 7px;    height: 7px;    border-radius: 50%;    background: var(--ps-success);    box-shadow: 0 0 0 3px rgba(58, 107, 82, 0.2);    flex-shrink: 0;}.ps-shortcuts {    display: grid;    grid-template-columns: repeat(4, 1fr);    gap: 10px;}.ps-shortcut {    display: flex;    flex-direction: column;    align-items: flex-start;    gap: 10px;    padding: 16px;    min-height: 108px;    border-radius: var(--ps-radius);    background: var(--ps-surface);    border: 1px solid var(--ps-border);    transition: box-shadow 0.15s, border-color 0.15s;}.ps-shortcut:hover {    box-shadow: var(--ps-shadow-sm);    border-color: rgba(45, 90, 74, 0.2);}.ps-shortcut-icon {    width: 38px;    height: 38px;    border-radius: 12px;    display: grid;    place-items: center;    background: var(--ps-accent-soft);    color: var(--ps-accent);}.ps-shortcut span { font-size: 13px; font-weight: 600; }/* ?? Tags & notices ?? */.ps-tag {    display: inline-flex;    align-items: center;    font-size: 10px;    font-weight: 700;    letter-spacing: 0.04em;    padding: 4px 8px;    border-radius: 6px;    background: var(--ps-surface-2);    color: var(--ps-ink-muted);}.ps-tag.is-live { background: rgba(58, 107, 82, 0.12); color: var(--ps-success); }.ps-tag.is-pin { background: rgba(166, 124, 46, 0.12); color: var(--ps-warn); }.ps-tag.is-vip { background: var(--ps-accent-soft); color: var(--ps-accent); }.ps-tag.is-sale { background: rgba(155, 61, 61, 0.1); color: var(--ps-danger); }.ps-tag.is-pay { background: var(--ps-sapphire-soft); color: var(--ps-sapphire); }.ps-tag.is-sold { background: var(--ps-surface-2); color: var(--ps-ink-muted); }.ps-tag.is-q1 { background: color-mix(in srgb, var(--ps-q1) 14%, var(--ps-surface)); color: var(--ps-q1); }.ps-tag.is-q2 { background: color-mix(in srgb, var(--ps-q2) 14%, var(--ps-surface)); color: var(--ps-q2); }.ps-tag.is-q3 { background: color-mix(in srgb, var(--ps-q3) 14%, var(--ps-surface)); color: var(--ps-q3); }.ps-tag.is-q4 { background: color-mix(in srgb, var(--ps-q4) 14%, var(--ps-surface)); color: var(--ps-q4); }.ps-tag.is-q5 { background: color-mix(in srgb, var(--ps-q5) 14%, var(--ps-surface)); color: var(--ps-q5); }.ps-tag.is-q6 { background: color-mix(in srgb, var(--ps-q6) 14%, var(--ps-surface)); color: var(--ps-q6); }.ps-notice, .ps-tip {    display: flex;    align-items: flex-start;    gap: 10px;    padding: 14px 16px;    border-radius: var(--ps-radius-sm);    font-size: 13px;    line-height: 1.5;    background: var(--ps-sapphire-soft);    color: var(--ps-sapphire);    border: 1px solid rgba(61, 90, 128, 0.15);}.ps-notice.is-warn, .ps-tip.is-error {    background: rgba(155, 61, 61, 0.08);    color: var(--ps-danger);    border-color: rgba(155, 61, 61, 0.15);}.ps-tip.is-success { background: rgba(58, 107, 82, 0.1); color: var(--ps-success); border-color: rgba(58, 107, 82, 0.15); }.ps-empty {    text-align: center;    padding: 40px 20px;    color: var(--ps-ink-muted);}.ps-empty-icon {    width: 56px;    height: 56px;    margin: 0 auto 12px;    border-radius: 16px;    background: var(--ps-surface-2);    display: grid;    place-items: center;    font-size: 24px;    opacity: 0.6;}.ps-empty strong { display: block; color: var(--ps-ink); font-size: 15px; margin-bottom: 4px; }.ps-empty span { font-size: 13px; }.ps-muted { color: var(--ps-ink-muted); font-size: 13px; margin: 0; line-height: 1.5; }.ps-link { font-size: 13px; font-weight: 600; color: var(--ps-accent); }/* ?? Buttons & forms ?? */.ps-btn {    display: inline-flex;    align-items: center;    justify-content: center;    gap: 6px;    min-height: var(--ps-touch);    padding: 0 20px;    border-radius: var(--ps-radius-sm);    font-weight: 600;    font-size: 14px;    transition: background 0.15s, box-shadow 0.15s;}.ps-btn:focus-visible { outline: 2px solid var(--ps-accent); outline-offset: 2px; }.ps-btn-primary { background: var(--ps-accent); color: #fff; box-shadow: 0 8px 20px rgba(45, 90, 74, 0.22); }.ps-btn-primary:hover { background: var(--ps-accent-hover); }.ps-btn-primary:disabled { opacity: 0.45; cursor: not-allowed; box-shadow: none; }.ps-btn-ghost { background: var(--ps-surface-2); color: var(--ps-ink); border: 1px solid var(--ps-border); }.ps-btn-sm { min-height: 38px; padding: 0 16px; font-size: 13px; }.ps-form { display: flex; flex-direction: column; gap: 16px; }.ps-field { display: flex; flex-direction: column; gap: 8px; }.ps-field span { font-size: 12px; font-weight: 600; color: var(--ps-ink-muted); }.ps-field input {    min-height: var(--ps-touch);    border: 1px solid var(--ps-border-strong);    border-radius: var(--ps-radius-sm);    padding: 0 14px;    background: var(--ps-surface);    transition: border-color 0.2s, box-shadow 0.2s;}.ps-field input:focus {    outline: none;    border-color: var(--ps-accent);    box-shadow: 0 0 0 3px var(--ps-accent-soft);}.ps-form-actions { display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; margin-top: 4px; }/* ?? Modal ?? */.ps-modal {    position: fixed;    inset: 0;    z-index: 1200;    display: flex;    align-items: center;    justify-content: center;    padding: max(20px, env(safe-area-inset-top)) 16px max(20px, env(safe-area-inset-bottom));    background: rgba(22, 20, 17, 0.45);    backdrop-filter: blur(6px);    -webkit-backdrop-filter: blur(6px);    opacity: 0;    visibility: hidden;    transition: opacity 0.22s var(--ps-ease), visibility 0.22s;}.ps-modal:not([hidden]) {    visibility: visible;}.ps-modal.is-open {    opacity: 1;}.ps-modal-panel {    position: relative;    z-index: 1;    width: min(100%, 400px);    max-height: min(92vh, 680px);    overflow: hidden;    display: flex;    flex-direction: column;    border-radius: calc(var(--ps-radius) + 4px);    background: linear-gradient(180deg, #fff 0%, var(--ps-surface) 100%);    border: 1px solid color-mix(in srgb, var(--shop-q, var(--ps-border)) 14%, var(--ps-border-strong));    box-shadow:        0 1px 0 rgba(255, 255, 255, 0.96) inset,        0 28px 72px rgba(30, 27, 22, 0.2);    transform: translateY(14px) scale(0.96);    transition: transform 0.28s var(--ps-ease);}.ps-modal.is-open .ps-modal-panel {    transform: translateY(0) scale(1);}.ps-modal-close {    position: absolute;    top: 12px;    right: 12px;    z-index: 4;    width: 36px;    height: 36px;    display: grid;    place-items: center;    border-radius: 999px;    color: var(--ps-ink-muted);    background: rgba(255, 255, 255, 0.82);    border: 1px solid rgba(255, 255, 255, 0.65);    box-shadow: 0 4px 14px rgba(30, 27, 22, 0.08);    backdrop-filter: blur(8px);    -webkit-backdrop-filter: blur(8px);    transition: background 0.15s, color 0.15s, transform 0.15s;}.ps-modal-close .layui-icon {    display: inline-flex;    align-items: center;    justify-content: center;    line-height: 1;}.ps-modal-close:hover {    color: var(--ps-ink);    background: #fff;    transform: scale(1.04);}.ps-shop-confirm {    --shop-q: var(--ps-q1);    --shop-q-deep: color-mix(in srgb, var(--shop-q) 68%, #1a1510);    --shop-q-mid: color-mix(in srgb, var(--shop-q) 28%, var(--ps-surface));    --shop-q-light: color-mix(in srgb, var(--shop-q) 8%, var(--ps-surface));    --shop-q-ring: color-mix(in srgb, var(--shop-q) 20%, transparent);}.ps-shop-confirm.is-q1 { --shop-q: var(--ps-q1); }.ps-shop-confirm.is-q2 { --shop-q: var(--ps-q2); }.ps-shop-confirm.is-q3 { --shop-q: var(--ps-q3); }.ps-shop-confirm.is-q4 { --shop-q: var(--ps-q4); }.ps-shop-confirm.is-q5 { --shop-q: var(--ps-q5); }.ps-shop-confirm.is-q6 { --shop-q: var(--ps-q6); }.ps-shop-confirm-hero {    position: relative;    flex-shrink: 0;    display: flex;    flex-direction: column;    align-items: center;    gap: 10px;    min-height: 196px;    padding: 22px 24px 20px;    overflow: hidden;    text-align: center;    background:        radial-gradient(circle at 50% 24%, rgba(255, 252, 248, 0.75) 0%, transparent 50%),        radial-gradient(ellipse 92% 68% at 50% 108%, var(--shop-q-ring) 0%, transparent 62%),        linear-gradient(178deg, var(--shop-q-mid) 0%, var(--shop-q-light) 48%, transparent 100%);}.ps-shop-confirm-hero::before {    content: "";    position: absolute;    inset: 0;    background-image: radial-gradient(color-mix(in srgb, var(--shop-q) 7%, transparent) 0.6px, transparent 0.6px);    background-size: 11px 11px;    opacity: 0.32;    pointer-events: none;}.ps-shop-confirm-hero::after {    content: "";    position: absolute;    inset: auto 16px 0;    height: 2px;    border-radius: 999px;    background: linear-gradient(90deg, transparent, var(--shop-q) 20%, var(--shop-q) 80%, transparent);    opacity: 0.72;}.ps-shop-confirm-discount {    position: absolute;    top: 14px;    left: 14px;    z-index: 3;    display: inline-flex;    align-items: center;    justify-content: center;    min-height: 26px;    padding: 0 11px;    border-radius: 999px;    font-size: 11px;    font-weight: 700;    line-height: 1;    color: #fff;    background: linear-gradient(135deg, #c25555 0%, #9b3d3d 100%);    box-shadow: 0 4px 12px rgba(155, 61, 61, 0.28);}.ps-shop-confirm-discount[hidden],.ps-shop-confirm-off[hidden] {    display: none !important;}.ps-shop-confirm-art {    position: relative;    z-index: 1;    width: 108px;    height: 108px;    margin: 4px 0 0;    display: grid;    place-items: center;    border-radius: 22px;    background: linear-gradient(180deg, rgba(255, 252, 248, 0.92) 0%, rgba(255, 252, 248, 0.55) 100%);    border: 1px solid color-mix(in srgb, var(--shop-q) 18%, rgba(255, 255, 255, 0.5));    box-shadow:        0 1px 0 rgba(255, 255, 255, 0.95) inset,        0 12px 32px color-mix(in srgb, var(--shop-q) 18%, transparent);}.ps-shop-confirm-art img {    width: 80px;    height: 80px;    object-fit: contain;    filter: drop-shadow(0 6px 12px rgba(30, 27, 22, 0.12));}.ps-shop-confirm-art .layui-icon {    font-size: 44px;    color: color-mix(in srgb, var(--shop-q) 55%, var(--ps-ink-faint));}.ps-shop-confirm-title {    position: relative;    z-index: 2;    margin: 0;    max-width: 100%;    font-size: 17px;    font-weight: 700;    line-height: 1.4;    color: var(--ps-ink);    display: -webkit-box;    -webkit-line-clamp: 2;    -webkit-box-orient: vertical;    overflow: hidden;}.ps-shop-confirm-body {    flex: 1;    min-height: 0;    padding: 16px 18px 18px;    display: flex;    flex-direction: column;    gap: 12px;    overflow: auto;}.ps-shop-confirm-stats {    display: grid;    grid-template-columns: 1fr 1fr;    gap: 10px;}.ps-shop-confirm-stat {    display: flex;    flex-direction: column;    align-items: center;    justify-content: center;    gap: 8px;    min-height: 76px;    padding: 14px 12px;    text-align: center;    border-radius: var(--ps-radius-sm);    background: linear-gradient(180deg, #fff 0%, var(--ps-surface-2) 100%);    border: 1px solid var(--ps-border);    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.85) inset;}.ps-shop-confirm-stat-label {    font-size: 11px;    font-weight: 600;    letter-spacing: 0.04em;    line-height: 1.2;    color: var(--ps-ink-faint);}.ps-shop-confirm-stat-val {    font-size: 18px;    font-weight: 700;    line-height: 1;    color: var(--ps-ink);    font-variant-numeric: tabular-nums;    letter-spacing: -0.02em;}.ps-shop-confirm-total {    display: flex;    flex-direction: column;    justify-content: center;    gap: 10px;    min-height: 88px;    padding: 14px 16px;    border-radius: var(--ps-radius-sm);    background:        linear-gradient(135deg, color-mix(in srgb, var(--shop-q) 6%, var(--ps-surface-2)) 0%, var(--ps-surface-2) 100%);    border: 1px solid color-mix(in srgb, var(--shop-q) 12%, var(--ps-border));    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset;}.ps-shop-confirm-total-head {    display: flex;    align-items: center;    justify-content: space-between;    gap: 10px;    margin-bottom: 0;}.ps-shop-confirm-total-label {    font-size: 12px;    font-weight: 700;    letter-spacing: 0.06em;    line-height: 1.2;    color: var(--ps-ink-muted);}.ps-shop-confirm-off {    display: inline-flex;    align-items: center;    justify-content: center;    min-height: 24px;    padding: 0 9px;    border-radius: 999px;    font-size: 11px;    font-weight: 700;    line-height: 1;    color: #9b3d3d;    background: rgba(155, 61, 61, 0.09);    border: 1px solid rgba(155, 61, 61, 0.14);}.ps-shop-confirm-total-val {    display: inline-flex;    align-items: center;    flex-wrap: wrap;    gap: 4px 6px;    font-size: 28px;    font-weight: 700;    font-variant-numeric: tabular-nums;    letter-spacing: -0.03em;    line-height: 1;    color: var(--ps-gold);}.ps-shop-confirm-total-val.is-diamond { color: var(--ps-sapphire); }.ps-shop-confirm-total-val.is-free {    color: var(--ps-success);    font-size: 22px;}.ps-shop-confirm-total-val .layui-icon {    font-size: 16px;    line-height: 1;}.ps-shop-confirm-total-val del {    font-size: 15px;    font-weight: 600;    line-height: 1;    color: var(--ps-ink-faint);    text-decoration: line-through;    opacity: 0.72;}.ps-shop-confirm-total-val .ps-shop-confirm-price-arrow {    font-size: 14px;    font-weight: 600;    line-height: 1;    color: var(--ps-ink-faint);    opacity: 0.55;}.ps-shop-confirm-note {    display: flex;    align-items: center;    gap: 8px;    margin: 0;    min-height: 44px;    padding: 10px 12px;    border-radius: var(--ps-radius-sm);    font-size: 12px;    line-height: 1.45;    color: var(--ps-ink-muted);    background: color-mix(in srgb, var(--ps-accent) 6%, var(--ps-surface-2));    border: 1px solid color-mix(in srgb, var(--ps-accent) 10%, var(--ps-border));}.ps-shop-confirm-note .layui-icon {    flex-shrink: 0;    display: inline-flex;    align-items: center;    justify-content: center;    font-size: 15px;    line-height: 1;    color: var(--ps-accent);    opacity: 0.85;}.ps-shop-confirm-actions {    display: grid;    grid-template-columns: 1fr 1.35fr;    gap: 10px;    padding-top: 2px;}.ps-shop-confirm-actions .ps-btn {    min-height: 44px;    border-radius: 999px;    line-height: 1.2;}.ps-shop-confirm-submit {    gap: 4px;    background: linear-gradient(180deg, var(--ps-accent) 0%, var(--ps-accent-hover) 100%);    box-shadow: 0 6px 18px rgba(45, 90, 74, 0.24);}.ps-shop-confirm-submit .layui-icon {    display: inline-flex;    align-items: center;    justify-content: center;    font-size: 16px;    line-height: 1;}/* ?? Shop buy feedback (success / error) ?? */.ps-shop-success .ps-modal-panel,.ps-shop-error .ps-modal-panel {    width: min(100%, 360px);    text-align: center;}.ps-shop-success-panel,.ps-shop-error-panel {    background: linear-gradient(180deg, #FFFCF8 0%, #F3EEE6 100%);    border-color: color-mix(in srgb, var(--ps-ink) 8%, var(--ps-border-strong));    box-shadow:        0 1px 0 rgba(255, 255, 255, 0.98) inset,        0 28px 72px rgba(30, 27, 22, 0.12);}.ps-shop-error-panel {    border-color: color-mix(in srgb, var(--ps-danger) 14%, var(--ps-border-strong));}.ps-shop-success-hero,.ps-shop-error-hero {    position: relative;    display: grid;    place-items: center;    padding: 28px 20px 22px;    background:        radial-gradient(ellipse 80% 70% at 50% 0%, rgba(243, 238, 230, 0.95) 0%, transparent 68%),        linear-gradient(180deg, rgba(255, 252, 248, 0.9) 0%, transparent 100%);}.ps-shop-error-hero {    background:        radial-gradient(ellipse 80% 70% at 50% 0%, rgba(248, 236, 234, 0.55) 0%, transparent 68%),        linear-gradient(180deg, rgba(255, 252, 248, 0.9) 0%, transparent 100%);}.ps-shop-success-check,.ps-shop-error-badge {    position: absolute;    top: 16px;    right: 16px;    width: 40px;    height: 40px;    display: grid;    place-items: center;    border-radius: 50%;    background: linear-gradient(145deg, #FFFCF8 0%, #E8E2D6 100%);    color: var(--ps-ink);    border: 1px solid color-mix(in srgb, var(--ps-ink) 10%, var(--ps-border-strong));    box-shadow: 0 6px 16px rgba(30, 27, 22, 0.08);    animation: ps-success-pop 0.45s var(--ps-ease) both;}.ps-shop-error-badge {    color: var(--ps-danger);    border-color: color-mix(in srgb, var(--ps-danger) 22%, var(--ps-border-strong));    background: linear-gradient(145deg, #FFFCF8 0%, #F5EBE8 100%);}.ps-shop-success-check .layui-icon,.ps-shop-error-badge .layui-icon {    font-size: 20px;    font-weight: 700;}.ps-shop-success-art,.ps-shop-error-art {    width: 88px;    height: 88px;    margin: 0;    display: grid;    place-items: center;    border-radius: 20px;    background: rgba(255, 252, 248, 0.95);    border: 1px solid color-mix(in srgb, var(--ps-ink) 8%, var(--ps-border));    box-shadow: 0 10px 28px rgba(30, 27, 22, 0.08);    animation: ps-success-rise 0.5s var(--ps-ease) 0.08s both;}.ps-shop-success-art img,.ps-shop-error-art img {    width: 72%;    height: 72%;    object-fit: contain;}.ps-shop-success-art .layui-icon,.ps-shop-error-art .layui-icon {    font-size: 36px;    color: var(--ps-ink-muted);    opacity: 0.75;}.ps-shop-success-body,.ps-shop-error-body {    padding: 4px 22px 22px;    display: flex;    flex-direction: column;    align-items: center;    gap: 8px;}.ps-shop-success-title,.ps-shop-error-title {    margin: 0;    font-size: 22px;    font-weight: 800;    letter-spacing: -0.02em;    color: var(--ps-ink);    animation: ps-success-rise 0.45s var(--ps-ease) 0.12s both;}.ps-shop-success-name,.ps-shop-error-name {    margin: 0;    font-size: 16px;    font-weight: 700;    color: var(--ps-ink);    animation: ps-success-rise 0.45s var(--ps-ease) 0.16s both;}.ps-shop-success-msg,.ps-shop-error-msg {    margin: 0 0 6px;    max-width: 28em;    font-size: 13px;    line-height: 1.55;    color: var(--ps-ink-muted);    animation: ps-success-rise 0.45s var(--ps-ease) 0.2s both;}.ps-shop-error-msg {    color: color-mix(in srgb, var(--ps-danger) 42%, var(--ps-ink-muted));}.ps-shop-success-btn,.ps-shop-error-btn {    width: 100%;    margin-top: 4px;    gap: 4px;    min-height: var(--ps-touch);    background: linear-gradient(180deg, #4A4438 0%, var(--ps-ink) 100%);    box-shadow: 0 6px 18px rgba(30, 27, 22, 0.16);    animation: ps-success-rise 0.45s var(--ps-ease) 0.24s both;}.ps-shop-success-btn:hover,.ps-shop-error-btn:hover {    background: linear-gradient(180deg, #3A3530 0%, #151310 100%);}.ps-shop-success-btn .layui-icon,.ps-shop-error-btn .layui-icon {    font-size: 16px;}@keyframes ps-success-pop {    0% { transform: scale(0.4); opacity: 0; }    65% { transform: scale(1.08); opacity: 1; }    100% { transform: scale(1); opacity: 1; }}@keyframes ps-success-rise {    0% { transform: translateY(10px); opacity: 0; }    100% { transform: translateY(0); opacity: 1; }}@media (prefers-reduced-motion: reduce) {    .ps-shop-success-check,    .ps-shop-error-badge,    .ps-shop-success-art,    .ps-shop-error-art,    .ps-shop-success-title,    .ps-shop-error-title,    .ps-shop-success-name,    .ps-shop-error-name,    .ps-shop-success-msg,    .ps-shop-error-msg,    .ps-shop-success-btn,    .ps-shop-error-btn {        animation: none;    }}/* ?? Pass claim feedback ?? */.ps-pass-feedback .ps-modal-panel {    width: min(100%, 360px);    text-align: center;}.ps-pass-feedback-panel {    background: linear-gradient(180deg, #FFFCF8 0%, #F3EEE6 100%);    border-color: color-mix(in srgb, var(--ps-ink) 8%, var(--ps-border-strong));    box-shadow:        0 1px 0 rgba(255, 255, 255, 0.98) inset,        0 28px 72px rgba(30, 27, 22, 0.12);}.ps-pass-feedback.is-error .ps-pass-feedback-panel {    border-color: color-mix(in srgb, var(--ps-danger) 14%, var(--ps-border-strong));}.ps-pass-feedback-hero {    position: relative;    display: grid;    place-items: center;    padding: 28px 20px 22px;    background:        radial-gradient(ellipse 80% 70% at 50% 0%, rgba(243, 238, 230, 0.95) 0%, transparent 68%),        linear-gradient(180deg, rgba(255, 252, 248, 0.9) 0%, transparent 100%);}.ps-pass-feedback.is-error .ps-pass-feedback-hero {    background:        radial-gradient(ellipse 80% 70% at 50% 0%, rgba(248, 236, 234, 0.55) 0%, transparent 68%),        linear-gradient(180deg, rgba(255, 252, 248, 0.9) 0%, transparent 100%);}.ps-pass-feedback-badge {    position: absolute;    top: 16px;    right: 16px;    width: 40px;    height: 40px;    display: grid;    place-items: center;    border-radius: 50%;    animation: ps-success-pop 0.45s var(--ps-ease) both;}.ps-pass-feedback-badge.is-success {    background: linear-gradient(145deg, #FFFCF8 0%, #E8E2D6 100%);    color: var(--ps-ink);    border: 1px solid color-mix(in srgb, var(--ps-ink) 10%, var(--ps-border-strong));    box-shadow: 0 6px 16px rgba(30, 27, 22, 0.08);}.ps-pass-feedback-badge.is-error {    background: linear-gradient(145deg, #FFFCF8 0%, #F5EBE8 100%);    color: var(--ps-danger);    border: 1px solid color-mix(in srgb, var(--ps-danger) 22%, var(--ps-border-strong));    box-shadow: 0 6px 16px rgba(30, 27, 22, 0.08);}.ps-pass-feedback-svg {    width: 20px;    height: 20px;    display: block;}.ps-pass-feedback-svg.is-large {    width: 44px;    height: 44px;    color: var(--ps-gold);    opacity: 0.88;}.ps-pass-feedback-symbol {    width: 88px;    height: 88px;    display: grid;    place-items: center;    border-radius: 20px;    background: rgba(255, 252, 248, 0.95);    border: 1px solid color-mix(in srgb, var(--ps-gold) 16%, var(--ps-border));    box-shadow: 0 10px 28px rgba(30, 27, 22, 0.08);    animation: ps-success-rise 0.5s var(--ps-ease) 0.08s both;}.ps-pass-feedback-body {    padding: 4px 22px 22px;    display: flex;    flex-direction: column;    align-items: center;    gap: 8px;}.ps-pass-feedback-title {    margin: 0;    font-size: 22px;    font-weight: 800;    letter-spacing: -0.02em;    color: var(--ps-ink);    animation: ps-success-rise 0.45s var(--ps-ease) 0.12s both;}.ps-pass-feedback-name {    margin: 0;    font-size: 16px;    font-weight: 700;    color: var(--ps-ink);    animation: ps-success-rise 0.45s var(--ps-ease) 0.16s both;}.ps-pass-feedback-msg {    margin: 0 0 6px;    max-width: 28em;    font-size: 13px;    line-height: 1.55;    color: var(--ps-ink-muted);    animation: ps-success-rise 0.45s var(--ps-ease) 0.2s both;}.ps-pass-feedback.is-error .ps-pass-feedback-msg {    color: color-mix(in srgb, var(--ps-danger) 42%, var(--ps-ink-muted));}.ps-pass-feedback-btn {    width: 100%;    margin-top: 4px;    min-height: var(--ps-touch);    background: linear-gradient(180deg, #4A4438 0%, var(--ps-ink) 100%);    box-shadow: 0 6px 18px rgba(30, 27, 22, 0.16);    animation: ps-success-rise 0.45s var(--ps-ease) 0.24s both;}.ps-pass-feedback-btn:hover {    background: linear-gradient(180deg, #3A3530 0%, #151310 100%);}@media (prefers-reduced-motion: reduce) {    .ps-pass-feedback-badge,    .ps-pass-feedback-symbol,    .ps-pass-feedback-title,    .ps-pass-feedback-name,    .ps-pass-feedback-msg,    .ps-pass-feedback-btn {        animation: none;    }}/* ?? Pass reward detail modal ?? */.ps-pass-reward-detail .ps-modal-panel {    width: min(100%, 440px);}.ps-pass-reward-detail-panel {    position: relative;    overflow: hidden;    background: var(--ps-surface);    border-color: rgba(30, 27, 22, 0.1);    box-shadow: 0 24px 64px rgba(30, 27, 22, 0.14);}.ps-pass-reward-detail-close svg {    width: 16px;    height: 16px;}.ps-pass-reward-detail-stamp {    position: absolute;    top: 52px;    right: 52px;    z-index: 2;    padding: 2px 8px;    border: 2px double rgba(110, 102, 92, 0.34);    border-radius: 3px;    font-size: 11px;    font-weight: 900;    letter-spacing: 0.14em;    text-indent: 0.14em;    color: rgba(110, 102, 92, 0.38);    background: rgba(255, 252, 248, 0.72);    transform: rotate(-12deg);    pointer-events: none;}.ps-pass-reward-detail-head {    padding: 20px 22px 16px;}.ps-pass-reward-detail-hero {    display: flex;    align-items: flex-start;    gap: 14px;    padding-right: 28px;}.ps-pass-reward-detail-lv {    flex-shrink: 0;    width: 48px;    height: 48px;    display: grid;    place-items: center;    border-radius: 50%;    background: var(--ps-surface-2);    border: 3px solid #fff;    box-shadow: 0 4px 14px rgba(30, 27, 22, 0.1);    transition: background 0.2s, box-shadow 0.2s;}.ps-pass-reward-detail-lv span {    font-size: 17px;    font-weight: 800;    font-variant-numeric: tabular-nums;    letter-spacing: -0.03em;    color: var(--ps-ink-muted);    line-height: 1;}.ps-pass-reward-detail-panel.is-tier-claimable .ps-pass-reward-detail-lv {    background: var(--ps-accent);    box-shadow:        0 0 0 4px rgba(45, 90, 74, 0.12),        0 4px 14px rgba(45, 90, 74, 0.22);}.ps-pass-reward-detail-panel.is-tier-claimable .ps-pass-reward-detail-lv span {    color: #fff;}.ps-pass-reward-detail-panel.is-tier-claimed .ps-pass-reward-detail-lv {    background: #C8D2CC;    box-shadow: 0 2px 8px rgba(30, 27, 22, 0.08);}.ps-pass-reward-detail-panel.is-tier-claimed .ps-pass-reward-detail-lv span {    color: #5E6F66;}.ps-pass-reward-detail-panel.is-tier-near .ps-pass-reward-detail-lv {    box-shadow: 0 0 0 4px rgba(154, 123, 47, 0.12);}.ps-pass-reward-detail-panel.is-tier-near .ps-pass-reward-detail-lv span {    color: #8B6914;}.ps-pass-reward-detail-panel.is-tier-locked .ps-pass-reward-detail-lv {    background: #E8E4DD;}.ps-pass-reward-detail-panel.is-tier-locked .ps-pass-reward-detail-lv span {    color: rgba(30, 27, 22, 0.35);}.ps-pass-reward-detail-intro {    flex: 1;    min-width: 0;}.ps-pass-reward-detail-kicker {    margin: 0 0 4px;    font-size: 10px;    font-weight: 700;    letter-spacing: 0.12em;    text-transform: uppercase;    color: var(--ps-gold);}.ps-pass-reward-detail-title {    margin: 0;    font-size: 19px;    font-weight: 800;    letter-spacing: -0.02em;    line-height: 1.2;    color: var(--ps-ink);}.ps-pass-reward-detail-title-row {    display: flex;    flex-wrap: wrap;    align-items: center;    gap: 8px;}.ps-pass-reward-detail-badge {    display: inline-flex;    align-items: center;    min-height: 24px;    padding: 0 9px;    border-radius: 999px;    font-size: 10px;    font-weight: 700;    letter-spacing: 0.03em;    color: var(--ps-ink-muted);    background: var(--ps-surface-2);    border: 1px solid var(--ps-border);}.ps-pass-reward-detail-badge[hidden],.ps-pass-reward-detail-stamp[hidden] {    display: none !important;}.ps-pass-reward-detail-badge.is-claimable {    color: #fff;    background: var(--ps-accent);    border-color: transparent;}.ps-pass-reward-detail-badge.is-near {    color: #8B6914;    background: var(--ps-gold-soft);    border-color: rgba(154, 123, 47, 0.16);}.ps-pass-reward-detail-badge.is-locked {    color: var(--ps-ink-muted);    background: rgba(30, 27, 22, 0.05);    border-color: rgba(30, 27, 22, 0.08);}.ps-pass-reward-detail-meta {    margin: 6px 0 0;    font-size: 12px;    line-height: 1.45;    color: var(--ps-ink-muted);    font-variant-numeric: tabular-nums;}.ps-pass-reward-detail-meta em {    font-style: normal;    font-weight: 800;    color: var(--ps-ink);}.ps-pass-reward-detail-body {    flex: 1;    min-height: 0;    padding: 0 22px 8px;    overflow: hidden;    display: flex;    flex-direction: column;    gap: 8px;}.ps-pass-reward-detail-count {    margin: 0;    font-size: 10px;    font-weight: 700;    letter-spacing: 0.08em;    text-transform: uppercase;    color: var(--ps-ink-faint);    font-variant-numeric: tabular-nums;}.ps-pass-reward-detail-list {    list-style: none;    margin: 0;    padding: 0;    flex: 1;    min-height: 0;    max-height: min(52vh, 380px);    overflow-y: auto;    overscroll-behavior: contain;    display: flex;    flex-direction: column;    gap: 8px;    scrollbar-width: thin;    scrollbar-color: rgba(100, 116, 139, 0.32) transparent;}.ps-pass-reward-detail-list::-webkit-scrollbar {    width: 6px;}.ps-pass-reward-detail-list::-webkit-scrollbar-thumb {    background: rgba(100, 116, 139, 0.32);    border-radius: 999px;}.ps-pass-reward-detail-item {    display: grid;    grid-template-columns: auto 1fr auto;    align-items: center;    gap: 10px;    min-height: 44px;    padding: 10px 12px;    border-radius: var(--ps-radius-sm);    background: var(--ps-surface-2);    border: 1px solid rgba(30, 27, 22, 0.06);    font-size: 13px;    line-height: 1.35;    transition: border-color 0.15s, background 0.15s;}.ps-pass-reward-detail-item:hover {    border-color: rgba(30, 27, 22, 0.1);    background: #FFFCF8;}.ps-pass-reward-detail-tag {    flex-shrink: 0;    min-width: 36px;    padding: 3px 7px;    border-radius: 6px;    font-size: 10px;    font-weight: 700;    letter-spacing: 0.02em;    text-align: center;    color: var(--ps-ink-muted);    background: rgba(255, 255, 255, 0.72);    border: 1px solid rgba(30, 27, 22, 0.06);}.ps-pass-reward-detail-item.is-gold .ps-pass-reward-detail-tag {    color: #8B6914;    background: var(--ps-gold-soft);    border-color: rgba(154, 123, 47, 0.12);}.ps-pass-reward-detail-item.is-diamond .ps-pass-reward-detail-tag {    color: #2A6B8A;    background: rgba(42, 107, 138, 0.1);    border-color: rgba(42, 107, 138, 0.14);}.ps-pass-reward-detail-item.is-member .ps-pass-reward-detail-tag {    color: var(--ps-accent);    background: var(--ps-accent-soft);    border-color: rgba(45, 90, 74, 0.12);}.ps-pass-reward-detail-item.is-item .ps-pass-reward-detail-tag {    color: var(--ps-ink-muted);    background: rgba(255, 255, 255, 0.8);}.ps-pass-reward-detail-name {    min-width: 0;    font-weight: 600;    color: var(--ps-ink);    overflow: hidden;    text-overflow: ellipsis;    white-space: nowrap;}.ps-pass-reward-detail-qty {    flex-shrink: 0;    min-width: 36px;    padding: 3px 8px;    border-radius: 999px;    font-size: 11px;    font-weight: 800;    font-variant-numeric: tabular-nums;    text-align: center;    color: var(--ps-ink-muted);    background: rgba(255, 255, 255, 0.65);    border: 1px solid rgba(30, 27, 22, 0.06);}.ps-pass-reward-detail-item.is-gold .ps-pass-reward-detail-qty {    color: #8B6914;    background: rgba(255, 252, 248, 0.9);    border-color: rgba(154, 123, 47, 0.14);}.ps-pass-reward-detail-item.is-diamond .ps-pass-reward-detail-qty {    color: #2A6B8A;    background: rgba(255, 255, 255, 0.9);    border-color: rgba(42, 107, 138, 0.14);}.ps-pass-reward-detail-item.is-member .ps-pass-reward-detail-qty {    color: var(--ps-accent);    background: rgba(255, 255, 255, 0.9);    border-color: rgba(45, 90, 74, 0.12);}.ps-pass-reward-detail-foot {    padding: 12px 22px 20px;}.ps-pass-reward-detail-btn {    width: 100%;    min-height: 40px;    border: none;    border-radius: var(--ps-radius-sm);    background: rgba(30, 27, 22, 0.05);    color: var(--ps-ink-muted);    font-size: 13px;    font-weight: 700;    letter-spacing: 0.04em;    cursor: pointer;    transition: background 0.15s, color 0.15s;}.ps-pass-reward-detail-btn:hover {    background: rgba(45, 90, 74, 0.08);    color: var(--ps-accent);}/* ?? Shop ?? */.ps-shop-toolbar {    display: flex;    flex-wrap: wrap;    gap: 12px;    align-items: center;    justify-content: space-between;    padding: 12px 14px;    border-radius: var(--ps-radius);    background: linear-gradient(180deg, #fff 0%, var(--ps-surface) 100%);    border: 1px solid var(--ps-border);    box-shadow: var(--ps-shadow-sm);    flex-shrink: 0;}#shopResults {    min-height: 280px;}.ps-shop-tabs {    display: flex;    flex-wrap: wrap;    gap: 6px;}.ps-shop-tab {    min-height: 36px;    padding: 0 14px;    border-radius: 999px;    font-size: 13px;    font-weight: 600;    color: var(--ps-ink-muted);    background: var(--ps-surface-2);    border: 1px solid transparent;    transition: all 0.2s;}.ps-shop-tab.is-active {    background: var(--ps-accent);    color: #fff;    box-shadow: 0 6px 16px rgba(45, 90, 74, 0.22);}.ps-shop-search {    display: flex;    gap: 8px;    flex: 1;    min-width: 200px;    max-width: 340px;}.ps-shop-search input {    flex: 1;    min-height: 40px;    border: 1px solid var(--ps-border);    border-radius: var(--ps-radius-sm);    padding: 0 14px;    background: var(--ps-surface-2);    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;}.ps-shop-search input:focus {    outline: none;    border-color: color-mix(in srgb, var(--ps-accent) 45%, var(--ps-border));    background: #fff;    box-shadow: 0 0 0 3px var(--ps-accent-soft);}.ps-product-grid {    display: grid;    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));    gap: 12px;}/* ?? Shop cards ?? */.ps-shop-grid {    --shop-card-min: 218px;    --shop-grid-gap: 14px;    display: grid;    grid-template-columns: repeat(auto-fill, minmax(var(--shop-card-min), 1fr));    gap: var(--shop-grid-gap);}.ps-shop-card {    --shop-q: var(--ps-q1);    --shop-q-deep: color-mix(in srgb, var(--shop-q) 68%, #1a1510);    --shop-q-mid: color-mix(in srgb, var(--shop-q) 28%, var(--ps-surface));    --shop-q-light: color-mix(in srgb, var(--shop-q) 8%, var(--ps-surface));    --shop-q-ring: color-mix(in srgb, var(--shop-q) 20%, transparent);    display: flex;    flex-direction: column;    min-height: 100%;    border-radius: var(--ps-radius);    background: linear-gradient(180deg, #fff 0%, var(--ps-surface) 42%, var(--ps-surface) 100%);    border: 1px solid color-mix(in srgb, var(--shop-q) 12%, var(--ps-border));    box-shadow:        0 1px 0 rgba(255, 255, 255, 0.92) inset,        var(--ps-shadow-sm);    overflow: hidden;    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;}.ps-shop-card:hover {    border-color: color-mix(in srgb, var(--shop-q) 26%, var(--ps-border));    box-shadow:        0 1px 0 rgba(255, 255, 255, 0.95) inset,        0 10px 28px color-mix(in srgb, var(--shop-q) 14%, transparent);    transform: translateY(-1px);}.ps-shop-card.is-q1 { --shop-q: var(--ps-q1); }.ps-shop-card.is-q2 { --shop-q: var(--ps-q2); }.ps-shop-card.is-q3 { --shop-q: var(--ps-q3); }.ps-shop-card.is-q4 { --shop-q: var(--ps-q4); }.ps-shop-card.is-q5 { --shop-q: var(--ps-q5); }.ps-shop-card.is-q6 { --shop-q: var(--ps-q6); }.ps-shop-card-hero {    position: relative;    display: grid;    place-items: center;    min-height: 172px;    padding: 18px 12px 22px;    overflow: hidden;    background:        radial-gradient(circle at 50% 32%, rgba(255, 252, 248, 0.62) 0%, transparent 48%),        radial-gradient(ellipse 88% 64% at 50% 108%, var(--shop-q-ring) 0%, transparent 62%),        linear-gradient(178deg, var(--shop-q-mid) 0%, var(--shop-q-light) 46%, transparent 100%);}.ps-shop-card-hero::before {    content: "";    position: absolute;    inset: 0;    background-image: radial-gradient(color-mix(in srgb, var(--shop-q) 7%, transparent) 0.6px, transparent 0.6px);    background-size: 11px 11px;    opacity: 0.35;    pointer-events: none;}.ps-shop-card-hero::after {    content: "";    position: absolute;    inset: auto 10px 0;    height: 2px;    border-radius: 999px;    background: linear-gradient(90deg, transparent, var(--shop-q) 20%, var(--shop-q) 80%, transparent);    opacity: 0.75;}.ps-shop-card-qty-tag,.ps-shop-card-discount,.ps-shop-card-sold {    position: absolute;    z-index: 3;    min-height: 20px;    padding: 0 8px;    border-radius: 999px;    font-size: 10px;    font-weight: 700;    font-variant-numeric: tabular-nums;    line-height: 20px;    letter-spacing: 0.02em;    backdrop-filter: blur(8px);    -webkit-backdrop-filter: blur(8px);    box-shadow: 0 2px 8px rgba(30, 27, 22, 0.07);}.ps-shop-card-qty-tag {    top: 9px;    left: 9px;    color: var(--ps-ink-muted);    background: rgba(255, 252, 248, 0.94);    border: 1px solid rgba(255, 255, 255, 0.98);    border-left: 2px solid color-mix(in srgb, var(--shop-q) 50%, transparent);}.ps-shop-card-discount {    top: 9px;    right: 9px;    max-width: calc(100% - 52px);    font-size: 9.5px;    color: var(--ps-danger);    background: linear-gradient(135deg, rgba(255, 252, 248, 0.98) 0%, rgba(155, 61, 61, 0.06) 100%);    border: 1px solid rgba(155, 61, 61, 0.16);    white-space: nowrap;    overflow: hidden;    text-overflow: ellipsis;}.ps-shop-card-sold {    right: 9px;    bottom: 9px;    font-size: 9.5px;    font-weight: 600;    color: var(--ps-ink-faint);    background: rgba(255, 252, 248, 0.9);    border: 1px solid rgba(255, 255, 255, 0.96);}.ps-shop-card-art {    position: relative;    z-index: 1;    display: grid;    place-items: center;    width: 112px;    height: 112px;    margin: 0;    padding: 0;}.ps-shop-card-art::after {    content: "";    position: absolute;    left: 50%;    bottom: 6%;    width: 68%;    height: 14%;    transform: translateX(-50%);    border-radius: 50%;    background: radial-gradient(ellipse, color-mix(in srgb, var(--shop-q-deep) 28%, transparent) 0%, transparent 72%);    filter: blur(1px);    pointer-events: none;}.ps-shop-card-art img {    position: relative;    z-index: 1;    width: 100%;    height: 100%;    object-fit: contain;    filter: drop-shadow(0 8px 16px color-mix(in srgb, var(--shop-q-deep) 28%, transparent));}.ps-shop-card-art i {    position: relative;    z-index: 1;    font-size: 54px;    color: color-mix(in srgb, var(--shop-q-deep) 48%, var(--ps-ink-faint));    filter: drop-shadow(0 6px 12px color-mix(in srgb, var(--shop-q) 22%, transparent));}.ps-shop-card-main {    flex: 1;    display: flex;    flex-direction: column;    gap: 9px;    padding: 12px 13px 10px;}.ps-shop-card-name {    margin: 0;    font-size: 13.5px;    font-weight: 700;    line-height: 1.42;    letter-spacing: -0.012em;    color: var(--ps-ink);    display: -webkit-box;    -webkit-line-clamp: 2;    -webkit-box-orient: vertical;    overflow: hidden;}.ps-shop-card-price {    display: flex;    align-items: center;    justify-content: space-between;    gap: 8px;    margin-top: auto;    padding-top: 9px;    border-top: 1px solid color-mix(in srgb, var(--shop-q) 6%, var(--ps-border));}.ps-shop-card-price-line {    display: flex;    align-items: baseline;    flex-wrap: wrap;    gap: 4px 6px;    min-width: 0;}.ps-shop-card-price-old {    display: inline-flex;    align-items: baseline;    gap: 1px;    font-size: 12px;    font-weight: 500;    color: var(--ps-ink-faint);    text-decoration: line-through;    font-variant-numeric: tabular-nums;    line-height: 1.2;}.ps-shop-card-price-old .layui-icon {    font-size: 10px;    opacity: 0.55;    margin-right: 1px;}.ps-shop-card-price-arrow {    font-size: 11px;    font-weight: 600;    color: var(--ps-ink-faint);    opacity: 0.45;    line-height: 1;    transform: translateY(-1px);}.ps-shop-card-price-now {    display: inline-flex;    align-items: baseline;    gap: 2px;    font-variant-numeric: tabular-nums;    letter-spacing: -0.03em;    line-height: 1.1;}.ps-shop-card-price-now em {    font-style: normal;    font-size: 20px;    font-weight: 700;}.ps-shop-card-price-now.is-free em {    font-size: 15px;    font-weight: 700;    color: var(--ps-success);}.ps-shop-card-price.is-gold .ps-shop-card-price-now { color: var(--ps-gold); }.ps-shop-card-price.is-diamond .ps-shop-card-price-now { color: var(--ps-sapphire); }.ps-shop-card-price-now .layui-icon {    font-size: 12px;    position: relative;    top: -1px;    opacity: 0.88;}.ps-shop-card-price-off {    flex-shrink: 0;    padding: 3px 7px;    border-radius: 5px;    font-size: 11px;    font-weight: 700;    font-variant-numeric: tabular-nums;    letter-spacing: 0.01em;    line-height: 1.25;    color: var(--ps-danger);    background: rgba(155, 61, 61, 0.09);    border: 1px solid rgba(155, 61, 61, 0.14);}.ps-shop-card-act {    display: grid;    grid-template-columns: minmax(0, auto) 1fr;    gap: 8px;    align-items: center;    padding: 9px 11px 11px;    margin-top: auto;    border-top: 1px solid color-mix(in srgb, var(--shop-q) 8%, var(--ps-border));    background: linear-gradient(180deg, rgba(255, 252, 248, 0.4) 0%, var(--ps-surface-2) 100%);}.ps-shop-qty {    display: grid;    grid-template-columns: 28px minmax(28px, 34px) 28px;    align-items: center;    min-height: 34px;    border: 1px solid var(--ps-border-strong);    border-radius: 999px;    background: var(--ps-surface);    overflow: hidden;    box-shadow: 0 1px 2px rgba(30, 27, 22, 0.04);}.ps-shop-qty-btn {    min-height: 34px;    font-size: 15px;    font-weight: 600;    color: var(--ps-ink-muted);    background: transparent;    transition: color 0.15s ease, background 0.15s ease;}.ps-shop-qty-btn:hover { color: var(--ps-accent); background: var(--ps-surface-2); }.ps-shop-qty input {    width: 100%;    min-height: 34px;    border: none;    border-left: 1px solid var(--ps-border);    border-right: 1px solid var(--ps-border);    background: transparent;    text-align: center;    font-size: 12px;    font-weight: 700;    font-variant-numeric: tabular-nums;    -moz-appearance: textfield;}.ps-shop-qty input::-webkit-outer-spin-button,.ps-shop-qty input::-webkit-inner-spin-button {    -webkit-appearance: none;    margin: 0;}.ps-shop-qty input:focus {    outline: none;    background: rgba(255, 255, 255, 0.65);}.ps-shop-buy-btn {    min-width: 0;    min-height: 34px;    padding: 0 16px;    font-size: 12px;    font-weight: 700;    letter-spacing: 0.05em;    border-radius: 999px;    background: linear-gradient(180deg, var(--ps-accent) 0%, var(--ps-accent-hover) 100%);    box-shadow: 0 2px 8px rgba(45, 90, 74, 0.2);    transition: box-shadow 0.15s ease, transform 0.15s ease;}.ps-shop-buy-btn:not(:disabled):hover {    box-shadow: 0 4px 12px rgba(45, 90, 74, 0.26);    transform: translateY(-1px);}.ps-shop-buy-btn:disabled {    box-shadow: none;    opacity: 0.5;    transform: none;}.ps-product-card {    display: flex;    flex-direction: column;    border-radius: var(--ps-radius);    background: var(--ps-surface);    border: 1px solid var(--ps-border);    overflow: hidden;    transition: box-shadow 0.15s;}.ps-product-card:hover {    box-shadow: var(--ps-shadow-sm);}.ps-product-icon {    aspect-ratio: 1;    background: linear-gradient(180deg, var(--ps-surface-2), var(--ps-surface));    display: grid;    place-items: center;    padding: 16px;}.ps-product-icon img { width: 72%; height: 72%; object-fit: contain; }.ps-product-icon i { font-size: 32px; color: var(--ps-ink-faint); }.ps-product-body { padding: 14px; flex: 1; display: flex; flex-direction: column; gap: 8px; }.ps-product-body h3 { margin: 0; font-size: 14px; font-weight: 600; line-height: 1.35; }.ps-product-price { margin: 0; font-size: 16px; font-weight: 700; font-variant-numeric: tabular-nums; }.ps-product-price .is-gold { color: var(--ps-gold); }.ps-product-price .is-diamond { color: var(--ps-sapphire); }.ps-product-buy { padding: 0 14px 14px; margin-top: auto; }.ps-product-buy .ps-btn { width: 100%; }.ps-pager {    display: flex;    align-items: center;    justify-content: center;    gap: 14px;    margin-top: 28px;    padding-top: 4px;    font-size: 13px;    color: var(--ps-ink-muted);}.ps-pager .ps-btn {    min-width: 84px;    min-height: 36px;    padding: 0 16px;    font-size: 13px;}.ps-pager .ps-btn:disabled {    opacity: 0.42;    cursor: not-allowed;    box-shadow: none;}.ps-pager-status {    min-width: 56px;    text-align: center;    font-weight: 600;    font-variant-numeric: tabular-nums;    color: var(--ps-ink-muted);}/* ?? Recharge ?? */.ps-recharge-grid {    display: grid;    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));    gap: 14px;}.ps-recharge-card {    position: relative;    display: flex;    flex-direction: column;    gap: 8px;    padding: 20px;    min-height: 220px;    border-radius: var(--ps-radius);    background: var(--ps-surface);    border: 1px solid var(--ps-border);    transition: box-shadow 0.15s;}.ps-recharge-card:hover { box-shadow: var(--ps-shadow-sm); }.ps-recharge-badge {    position: absolute;    top: 14px;    right: 14px;    font-size: 10px;    font-weight: 700;    padding: 4px 8px;    border-radius: 6px;    background: var(--ps-warn);    color: #fff;}.ps-recharge-type { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ps-ink-faint); }.ps-recharge-card h3 { margin: 0; font-size: 18px; font-weight: 700; }.ps-recharge-card p { margin: 0; font-size: 13px; color: var(--ps-ink-muted); line-height: 1.5; }.ps-recharge-rewards { list-style: none; margin: 0; padding: 0; font-size: 13px; color: var(--ps-accent); font-weight: 600; }.ps-recharge-foot { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 12px; }.ps-recharge-price { font-size: 24px; font-weight: 700; color: var(--ps-danger); font-variant-numeric: tabular-nums; }.ps-pay-chips { display: flex; gap: 8px; }/* ???? Gift center: treasure vault (up-gf-*) ???? */
@keyframes up-gf-spark-drift {
    0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.25; }
    50% { transform: translate(6px, -8px) scale(1.1); opacity: 0.55; }
}

@keyframes up-gf-vault-sweep {
    0%, 100% { transform: translateX(-35%) rotate(14deg); opacity: 0; }
    48% { opacity: 0.55; }
    62% { transform: translateX(45%) rotate(14deg); opacity: 0; }
}

@keyframes up-gf-stat-pulse {
    0%, 100% { box-shadow: var(--ps-shadow-sm), 0 0 0 0 rgba(45, 90, 74, 0.18); }
    50% { box-shadow: var(--ps-shadow-sm), 0 0 0 4px rgba(45, 90, 74, 0); }
}

@keyframes up-gf-aura-breathe {
    0%, 100% { opacity: 0.35; transform: scale(0.98); }
    50% { opacity: 0.7; transform: scale(1.02); }
}

@keyframes up-gf-shine-sweep {
    0% { transform: translateX(-120%) skewX(-18deg); opacity: 0; }
    40% { opacity: 0.55; }
    100% { transform: translateX(220%) skewX(-18deg); opacity: 0; }
}

@keyframes up-gf-gem-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
}

@keyframes up-gf-seal-ring-spin {
    to { transform: rotate(360deg); }
}

@keyframes up-gf-seal-aurora {
    0%, 100% { transform: translateY(-18px); opacity: 0.25; }
    50% { transform: translateY(18px); opacity: 0.9; }
}

@keyframes up-gf-seal-plinth {
    0%, 100% { opacity: 0.45; transform: scaleX(0.92); }
    50% { opacity: 1; transform: scaleX(1.06); }
}

@keyframes up-gf-seal-core-breathe {
    0%, 100% { transform: scale(1); box-shadow: 0 4px 14px rgba(154, 123, 47, 0.14); }
    50% { transform: scale(1.05); box-shadow: 0 6px 22px rgba(196, 162, 78, 0.28); }
}

@keyframes up-gf-seal-column-glow {
    0%, 100% { opacity: 0.55; }
    50% { opacity: 1; }
}

@keyframes up-rc-seal-core-breathe {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
}

@keyframes up-rc-seal-halo-breathe {
    0%, 100% { opacity: 0.42; transform: scale(0.94); }
    50% { opacity: 0.88; transform: scale(1.06); }
}

@keyframes up-rc-seal-ripple {
    0% { transform: scale(0.68); opacity: 0.52; }
    100% { transform: scale(1.22); opacity: 0; }
}

@keyframes up-rc-seal-spark-twinkle {
    0%, 100% { opacity: 0.15; transform: scale(0.75); }
    45% { opacity: 1; transform: scale(1.2); }
}

@keyframes up-rc-seal-sweep {
    0%, 72%, 100% { opacity: 0; transform: translateY(36%) rotate(-16deg); }
    80% { opacity: 0.55; }
    92% { opacity: 0; transform: translateY(-36%) rotate(-16deg); }
}

@keyframes up-rc-seal-column-glow {
    0%, 100% { opacity: 0.5; }
    50% { opacity: 1; }
}

@keyframes up-gf-orb-spin {
    to { transform: rotate(360deg); }
}

@keyframes up-gf-claim-glow {
    0%, 100% { box-shadow: 0 6px 18px rgba(45, 90, 74, 0.22); }
    50% { box-shadow: 0 8px 26px rgba(45, 90, 74, 0.38); }
}

@keyframes up-gf-shine-loop {
    0%, 68% { transform: translateX(-120%) skewX(-18deg); opacity: 0; }
    74% { opacity: 0.45; }
    86% { transform: translateX(220%) skewX(-18deg); opacity: 0; }
    100% { transform: translateX(220%) skewX(-18deg); opacity: 0; }
}

@keyframes up-gf-crate-edge {
    0%, 100% { box-shadow: var(--ps-shadow-sm); }
    50% { box-shadow: var(--ps-shadow-sm), 0 0 0 1px rgba(45, 90, 74, 0.15), 0 8px 24px rgba(45, 90, 74, 0.08); }
}

@keyframes up-gf-orb-pulse {
    0%, 100% { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8); }
    50% { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8), 0 0 0 4px rgba(45, 90, 74, 0.1), 0 4px 14px rgba(45, 90, 74, 0.12); }
}

/* ?? Gift vault hero ?? */

.up-gf-vault {
    position: relative;
    padding: 22px 24px 20px;
    margin-bottom: 16px;
    border-radius: var(--ps-radius-xl);
    overflow: hidden;
    color: var(--ps-ink);
    background:
        radial-gradient(ellipse 70% 90% at 0% 0%, rgba(45, 90, 74, 0.08) 0%, transparent 58%),
        radial-gradient(ellipse 55% 70% at 100% 100%, rgba(154, 123, 47, 0.1) 0%, transparent 55%),
        linear-gradient(158deg, #FFFCF8 0%, var(--ps-surface) 50%, var(--ps-surface-2) 100%);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
}

.up-gf-vault-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.up-gf-vault-bg::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -18%;
    width: 58%;
    height: 200%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.14), transparent);
    animation: up-gf-vault-sweep 9s ease-in-out infinite;
    pointer-events: none;
}

.up-gf-vault-chest {
    position: absolute;
    top: -36px;
    right: -28px;
    width: min(260px, 48vw);
    height: min(260px, 48vw);
    opacity: 0.42;
}

.up-gf-vault-chest-aura {
    position: absolute;
    inset: -10%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(196, 162, 78, 0.22) 0%, rgba(45, 90, 74, 0.1) 48%, transparent 72%);
    animation: up-lt-aura-breathe 4.5s ease-in-out infinite;
}

.up-gf-vault-chest-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: linear-gradient(165deg, rgba(255, 252, 248, 0.55) 0%, rgba(230, 222, 210, 0.3) 100%);
    box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.65), 0 8px 24px rgba(30, 27, 22, 0.07);
}

.up-gf-vault-chest-orbit {
    position: absolute;
    inset: -3px;
    border-radius: 50%;
    background: conic-gradient(from 0deg, #C4A24E, rgba(45, 90, 74, 0.5), #E8D48A, rgba(196, 162, 78, 0.3), #C4A24E);
    -webkit-mask: radial-gradient(circle, transparent 58%, #000 59%, #000 66%, transparent 67%);
    mask: radial-gradient(circle, transparent 58%, #000 59%, #000 66%, transparent 67%);
    animation: up-lt-rim-chase 3.6s linear infinite;
}

.up-gf-vault-chest-face {
    position: absolute;
    inset: 18%;
    border-radius: 22%;
    display: grid;
    place-items: center;
    background: linear-gradient(160deg, rgba(255, 252, 248, 0.95) 0%, rgba(243, 238, 230, 0.85) 100%);
    border: 1px solid rgba(154, 123, 47, 0.2);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 10px 28px rgba(154, 123, 47, 0.15);
    animation: up-gf-gem-float 3.2s ease-in-out infinite;
}

.up-gf-vault-chest-face .layui-icon {
    font-size: clamp(28px, 8vw, 42px);
    color: var(--ps-gold);
    filter: drop-shadow(0 4px 8px rgba(154, 123, 47, 0.25));
}

.up-gf-spark {
    position: absolute;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--ps-gold);
    box-shadow: 0 0 10px rgba(154, 123, 47, 0.45);
    animation: up-gf-spark-drift 5s ease-in-out infinite;
}

.up-gf-spark--a { top: 18%; left: 12%; animation-delay: 0s; }
.up-gf-spark--b { top: 62%; left: 78%; animation-delay: -1.2s; }
.up-gf-spark--c { top: 28%; left: 55%; animation-delay: -2.4s; width: 3px; height: 3px; }
.up-gf-spark--d { top: 72%; left: 24%; animation-delay: -3.1s; width: 5px; height: 5px; opacity: 0.35; }
.up-gf-spark--e { top: 42%; left: 88%; animation-delay: -1.8s; width: 3px; height: 3px; background: rgba(45, 90, 74, 0.85); box-shadow: 0 0 8px rgba(45, 90, 74, 0.35); }
.up-gf-spark--f { top: 8%; left: 68%; animation-delay: -4.2s; width: 4px; height: 4px; }

.up-gf-vault-dust {
    position: absolute;
    inset: 0;
    opacity: 0.45;
    background-image:
        radial-gradient(circle at 14% 22%, rgba(154, 123, 47, 0.14) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 82% 18%, rgba(45, 90, 74, 0.12) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 56% 68%, rgba(154, 123, 47, 0.1) 0 1px, transparent 2px),
        radial-gradient(circle at 28% 78%, rgba(45, 90, 74, 0.08) 0 1px, transparent 2px);
    animation: up-lt-dust-float 7s ease-in-out infinite alternate;
}

.up-gf-vault .ps-kicker {
    margin: 0 0 8px;
    color: var(--ps-gold);
}

.up-gf-arena,
.up-gf-grid {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.up-gf-crate {
    --gf-accent: rgba(30, 27, 22, 0.06);
    --gf-ring-soft: rgba(45, 90, 74, 0.1);
    --gf-icon-w: 108px;
    position: relative;
    display: grid;
    grid-template-columns: var(--gf-icon-w) minmax(0, 1fr) auto;
    grid-template-areas: "seal body foot";
    align-items: stretch;
    gap: 0;
    min-height: 0;
    border-radius: var(--ps-radius-xl);
    background: var(--ps-surface);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
    overflow: hidden;
    transition: border-color 0.25s, box-shadow 0.25s, transform 0.22s var(--ps-ease);
}

.up-gf-crate-fx {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.up-gf-crate-aura {
    position: absolute;
    inset: -20%;
    background: radial-gradient(circle at 30% 50%, rgba(45, 90, 74, 0.18) 0%, transparent 55%);
    opacity: 0;
}

.up-gf-crate-shine {
    position: absolute;
    top: 0;
    left: 0;
    width: 40%;
    height: 100%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.35), transparent);
    transform: translateX(-120%) skewX(-18deg);
    opacity: 0;
}

.up-gf-crate.is-ready {
    --gf-accent: rgba(45, 90, 74, 0.22);
    --gf-ring-soft: rgba(45, 90, 74, 0.1);
    border-color: rgba(45, 90, 74, 0.22);
    box-shadow: 0 10px 28px rgba(45, 90, 74, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.65);
    animation: up-gf-crate-edge 3.2s ease-in-out infinite;
}

.up-gf-crate.is-ready .up-gf-crate-aura {
    opacity: 1;
    animation: up-gf-aura-breathe 3.2s ease-in-out infinite;
}

.up-gf-crate.is-ready .up-gf-crate-shine {
    animation: up-gf-shine-loop 4.8s ease-in-out infinite;
}

.up-gf-crate.is-ready:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 36px rgba(45, 90, 74, 0.12);
    animation: none;
}

.up-gf-crate.is-ready:hover .up-gf-crate-shine {
    animation: up-gf-shine-sweep 0.85s ease-out forwards;
}

.up-gf-crate.is-done {
    --gf-accent: rgba(58, 107, 82, 0.16);
    opacity: 0.94;
}

.up-gf-crate.is-locked {
    opacity: 0.92;
}

.up-gf-crate-seal-col {
    position: relative;
    z-index: 1;
    grid-area: seal;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: var(--gf-icon-w);
    padding: 14px 10px;
    border-right: 1px solid rgba(30, 27, 22, 0.06);
    background: linear-gradient(180deg, rgba(255, 252, 248, 0.65) 0%, var(--gf-ring-soft) 100%);
    overflow: hidden;
}

.up-gf-crate.is-ready .up-gf-crate-seal-col {
    background: linear-gradient(180deg, rgba(255, 252, 248, 0.72) 0%, rgba(45, 90, 74, 0.08) 100%);
}

.up-gf-crate.is-ready .up-gf-crate-seal-col::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 85% 55% at 50% 100%, rgba(196, 162, 78, 0.32) 0%, transparent 70%),
        linear-gradient(180deg, rgba(255, 252, 248, 0.08) 0%, transparent 42%);
    animation: up-gf-seal-column-glow 2.8s ease-in-out infinite;
    pointer-events: none;
}

.up-gf-crate.is-ready .up-gf-crate-seal-col::after {
    content: '';
    position: absolute;
    left: 0;
    top: 18%;
    bottom: 18%;
    width: 2px;
    border-radius: 999px;
    background: linear-gradient(180deg, transparent, rgba(196, 162, 78, 0.45), transparent);
    opacity: 0.55;
    pointer-events: none;
}

.up-gf-crate-seal {
    position: relative;
    z-index: 1;
    width: 72px;
    height: 72px;
    display: grid;
    place-items: center;
}

.up-gf-crate-seal-fx {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.up-gf-crate-seal-fx > * {
    opacity: 0;
}

.up-gf-crate.is-ready .up-gf-crate-seal-fx > * {
    opacity: 1;
}

.up-gf-crate-seal-plinth {
    position: absolute;
    left: 50%;
    bottom: 4px;
    width: 82%;
    height: 12px;
    margin-left: -41%;
    border-radius: 50%;
    background: radial-gradient(ellipse, rgba(196, 162, 78, 0.42) 0%, transparent 72%);
    animation: up-gf-seal-plinth 2.8s ease-in-out infinite;
}

.up-gf-crate-seal-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 1px dashed rgba(154, 123, 47, 0.28);
}

.up-gf-crate.is-ready .up-gf-crate-seal-ring {
    border: none;
}

.up-gf-crate.is-ready .up-gf-crate-seal-ring::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    padding: 2px;
    background: conic-gradient(from 0deg, rgba(196, 162, 78, 0.95), rgba(45, 90, 74, 0.55), rgba(232, 212, 138, 0.85), rgba(196, 162, 78, 0.2), rgba(196, 162, 78, 0.95));
    -webkit-mask:
        linear-gradient(#000 0 0) content-box,
        linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask:
        linear-gradient(#000 0 0) content-box,
        linear-gradient(#000 0 0);
    mask-composite: exclude;
    animation: up-gf-seal-ring-spin 3.6s linear infinite;
}

.up-gf-crate-seal-aurora {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 130%;
    height: 7px;
    margin: -3px 0 0 -65%;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, rgba(232, 212, 138, 0.75), transparent);
    animation: up-gf-seal-aurora 3.2s ease-in-out infinite;
}

.up-gf-crate-seal-orbit {
    position: absolute;
    inset: 0;
    animation: up-gf-seal-ring-spin 5.5s linear infinite;
}

.up-gf-crate-seal-orbit.is-b {
    animation-direction: reverse;
    animation-duration: 7s;
}

.up-gf-crate-seal-orbit i {
    position: absolute;
    top: 2px;
    left: 50%;
    width: 5px;
    height: 5px;
    margin-left: -2.5px;
    border-radius: 50%;
    background: #E8D48A;
    box-shadow: 0 0 8px rgba(196, 162, 78, 0.75);
}

.up-gf-crate-seal-orbit.is-b i {
    top: auto;
    bottom: 6px;
    width: 4px;
    height: 4px;
    margin-left: -2px;
    opacity: 0.75;
}

.up-gf-crate-seal-core {
    position: relative;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: linear-gradient(155deg, #FFFCF8 0%, var(--ps-surface-2) 100%);
    border: 1px solid rgba(154, 123, 47, 0.22);
    box-shadow: 0 4px 14px rgba(154, 123, 47, 0.14);
    color: var(--ps-gold);
}

.up-gf-crate.is-ready .up-gf-crate-seal-core {
    border-color: rgba(196, 162, 78, 0.35);
    background: linear-gradient(160deg, #FFFCF8 0%, rgba(243, 232, 200, 0.6) 100%);
    animation: up-gf-seal-core-breathe 2.6s ease-in-out infinite;
}

.up-gf-crate-seal-core .layui-icon {
    font-size: 22px;
    line-height: 1;
    filter: drop-shadow(0 2px 4px rgba(154, 123, 47, 0.18));
}

.up-gf-crate.is-ready .up-gf-crate-seal-core .layui-icon {
    color: var(--ps-gold);
}

.up-gf-crate-id {
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.08em;
    font-variant-numeric: tabular-nums;
    color: var(--ps-ink-faint);
}

.up-gf-crate-body {
    position: relative;
    z-index: 1;
    grid-area: body;
    min-width: 0;
    padding: 16px 16px 16px 14px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
}

.up-gf-crate-head {
    min-width: 0;
}

.up-gf-crate-title {
    margin: 0;
    min-width: 0;
    padding-right: 72px;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.25;
    color: var(--ps-ink);
    text-wrap: pretty;
}

.up-gf-crate.is-ready .up-gf-crate-title {
    color: color-mix(in srgb, var(--ps-accent) 18%, var(--ps-ink));
}

.up-gf-crate-state {
    position: absolute;
    top: 14px;
    right: 12px;
    z-index: 2;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 9px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 24px;
    border: 1px solid var(--ps-border);
    background: var(--ps-surface-2);
    color: var(--ps-ink-muted);
    pointer-events: none;
}

.up-gf-crate-state.is-claimable {
    padding-left: 18px;
    color: var(--ps-accent);
    background: var(--ps-accent-soft);
    border-color: rgba(45, 90, 74, 0.16);
    box-shadow: 0 0 14px rgba(45, 90, 74, 0.12);
    animation: up-gf-stat-pulse 2.8s ease-in-out infinite;
}

.up-gf-crate-state.is-claimable::before {
    content: '';
    position: absolute;
    left: 7px;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -3px;
    border-radius: 50%;
    background: var(--ps-accent);
    box-shadow: 0 0 8px rgba(45, 90, 74, 0.55);
    animation: up-lt-state-dot 2s ease-in-out infinite;
}

.up-gf-crate-state.is-claimed {
    top: 12px;
    right: 10px;
    min-height: auto;
    padding: 3px 10px 4px;
    border-radius: 3px;
    border: 2px double rgba(58, 107, 82, 0.42);
    background: rgba(255, 252, 248, 0.62);
    color: rgba(58, 107, 82, 0.68);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-indent: 0.14em;
    line-height: 1.25;
    transform: rotate(-12deg);
    box-shadow: none;
    white-space: nowrap;
}

.up-gf-crate.is-done .up-gf-crate-title {
    padding-right: 72px;
}

.up-gf-crate-desc {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--ps-ink-muted);
}

.up-gf-crate-tags {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.up-gf-crate-tags li {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    min-height: 26px;
    padding: 0 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.01em;
    font-variant-numeric: tabular-nums;
    color: var(--ps-ink-muted);
    background: var(--ps-surface);
    border: 1px solid var(--ps-border);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75);
}

.up-gf-crate-tags li strong {
    font-weight: 800;
    font-size: 12px;
    letter-spacing: -0.02em;
}

.up-gf-crate-tags li.is-vip {
    color: var(--ps-accent);
    background: var(--ps-accent-soft);
    border-color: rgba(45, 90, 74, 0.18);
}

.up-gf-crate-tags li.is-vip strong {
    color: var(--ps-accent);
}

.up-gf-crate-tags li.is-user {
    color: #7A6020;
    background: linear-gradient(135deg, rgba(196, 162, 78, 0.2) 0%, rgba(255, 246, 214, 0.65) 100%);
    border-color: rgba(154, 123, 47, 0.28);
}

.up-gf-crate-tags li.is-user strong {
    color: var(--ps-gold);
    font-size: 13px;
}

.up-gf-crate-tags li.is-server {
    color: #2A5270;
    background: linear-gradient(135deg, rgba(61, 90, 128, 0.14) 0%, rgba(61, 90, 128, 0.06) 100%);
    border-color: rgba(61, 90, 128, 0.22);
}

.up-gf-crate-tags li.is-server strong {
    color: var(--ps-sapphire);
    font-size: 13px;
}

.up-gf-crate-tags li.is-whitelist {
    color: #8B5CF6;
    background: linear-gradient(135deg, rgba(139, 92, 246, 0.12) 0%, rgba(139, 92, 246, 0.06) 100%);
    border-color: rgba(139, 92, 246, 0.2);
}

.up-gf-crate.is-ready .up-gf-crate-tags li.is-user {
    border-color: rgba(154, 123, 47, 0.34);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.85), 0 2px 6px rgba(154, 123, 47, 0.1);
}

.up-gf-crate.is-ready .up-gf-crate-tags li.is-server {
    border-color: rgba(61, 90, 128, 0.28);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.85), 0 2px 6px rgba(61, 90, 128, 0.08);
}

.up-gf-crate-foot {
    grid-area: foot;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px 20px;
    min-width: 168px;
    border-left: 1px solid rgba(30, 27, 22, 0.06);
    background: linear-gradient(180deg, rgba(255, 252, 248, 0.55) 0%, var(--gf-ring-soft) 100%);
}

.up-gf-crate.is-ready .up-gf-crate-foot {
    background: linear-gradient(180deg, rgba(255, 252, 248, 0.62) 0%, rgba(45, 90, 74, 0.08) 100%);
}

.up-gf-crate-act {
    width: 100%;
    min-width: 0;
}

.up-gf-crate-act form {
    width: 100%;
}

.up-gf-loot-orb {
    position: relative;
    display: grid;
    place-items: center;
    width: 84px;
    height: 84px;
    padding: 0;
    margin: 0;
    border: none;
    background: transparent;
    cursor: pointer;
}

.up-gf-loot-orb-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 1px dashed rgba(154, 123, 47, 0.45);
    animation: up-gf-orb-spin 8s linear infinite;
}

.up-gf-crate.is-ready .up-gf-loot-orb-ring {
    border-color: rgba(45, 90, 74, 0.4);
    border-style: solid;
    animation: up-gf-orb-spin 4.5s linear infinite;
}

.up-gf-crate.is-ready .up-gf-loot-orb-core {
    animation: up-gf-orb-pulse 2.4s ease-in-out infinite;
}

.up-gf-loot-orb-core {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: linear-gradient(160deg, #fff 0%, var(--ps-surface-2) 100%);
    border: 1px solid var(--ps-border);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
    transition: transform 0.15s var(--ps-ease), box-shadow 0.15s var(--ps-ease);
}

.up-gf-loot-orb-core strong {
    font-size: 17px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    color: var(--ps-gold);
}

.up-gf-loot-orb-core em {
    font-style: normal;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--ps-ink-faint);
}

.up-gf-loot-orb:hover .up-gf-loot-orb-core {
    transform: scale(1.06);
    box-shadow: 0 6px 16px rgba(45, 90, 74, 0.14);
}

.up-gf-loot-orb:focus-visible {
    outline: 2px solid rgba(45, 90, 74, 0.35);
    outline-offset: 3px;
    border-radius: 50%;
}

.up-gf-crate-foot form,
.up-gf-crate-act form {
    width: 100%;
}

.up-gf-claim-btn {
    width: 100%;
    min-width: 88px;
    min-height: 38px;
    padding: 0 14px;
    font-size: 12px;
    letter-spacing: 0.04em;
    box-shadow: none;
}

.up-gf-crate.is-ready .up-gf-claim-btn:not(:disabled) {
    position: relative;
    overflow: hidden;
    animation: up-gf-claim-glow 2.4s ease-in-out infinite;
}

.up-gf-crate.is-ready .up-gf-claim-btn:not(:disabled)::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, transparent 38%, rgba(255, 255, 255, 0.28) 50%, transparent 62%);
    animation: up-lt-draw-shimmer 2.6s ease-in-out infinite;
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    .up-gf-spark,
    .up-gf-vault-bg::after,
    .up-gf-vault-chest-aura,
    .up-gf-vault-chest-orbit,
    .up-gf-vault-chest-face,
    .up-gf-vault-dust,
    .up-gf-crate.is-ready,
    .up-gf-crate.is-ready .up-gf-crate-aura,
    .up-gf-crate.is-ready .up-gf-crate-shine,
    .up-gf-crate.is-ready .up-gf-crate-seal-col::before,
    .up-gf-crate.is-ready .up-gf-crate-seal-ring::before,
    .up-gf-crate.is-ready .up-gf-crate-seal-aurora,
    .up-gf-crate.is-ready .up-gf-crate-seal-plinth,
    .up-gf-crate.is-ready .up-gf-crate-seal-orbit,
    .up-gf-crate.is-ready .up-gf-crate-seal-core,
    .up-gf-crate-state.is-claimable,
    .up-gf-crate-state.is-claimable::before,
    .up-gf-loot-orb-ring,
    .up-gf-crate.is-ready .up-gf-loot-orb-core,
    .up-gf-crate.is-ready .up-gf-claim-btn:not(:disabled),
    .up-gf-crate.is-ready .up-gf-claim-btn:not(:disabled)::after {
    animation: none;
}

    .up-gf-crate.is-ready:hover {
    transform: none;
    }

    .up-gf-crate.is-ready:hover .up-gf-crate-shine {
    animation: none;
    }
}

/* ??????????? hover ?? / ?? / ?? orb ?? */
.is-giftpacks .up-gf-crate {
    transition: border-color 0.25s, box-shadow 0.25s;
}

.is-giftpacks .up-gf-crate.is-ready:hover,
.is-giftpacks .up-gf-crate.is-locked:hover,
.is-giftpacks .up-gf-crate.is-done:hover {
    transform: none;
    animation: up-gf-crate-edge 3.2s ease-in-out infinite;
}

.is-giftpacks .up-gf-crate.is-ready:hover {
    box-shadow:
        0 10px 28px rgba(45, 90, 74, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.is-giftpacks .up-gf-crate.is-ready:hover .up-gf-crate-shine {
    animation: up-gf-shine-loop 4.8s ease-in-out infinite;
}

.is-giftpacks .up-gf-loot-orb:hover .up-gf-loot-orb-core {
    transform: none;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}


/* ?? Lottery: gold-hub star wheel (up-lt-*) ?? */

@keyframes up-lt-spin {
    to { transform: rotate(360deg); }
}

@keyframes up-lt-spin-rev {
    to { transform: rotate(-360deg); }
}

@keyframes up-lt-spin-fury {
    0% { transform: rotate(0deg) scale(1); }
    35% { transform: rotate(540deg) scale(1.04); }
    70% { transform: rotate(1080deg) scale(1.02); }
    100% { transform: rotate(1440deg) scale(1); }
}

@keyframes up-lt-aura-breathe {
    0%, 100% { transform: scale(0.9); opacity: 0.45; }
    50% { transform: scale(1.06); opacity: 0.95; }
}

@keyframes up-lt-rim-chase {
    to { transform: rotate(360deg); }
}

@keyframes up-lt-sweep {
    to { transform: rotate(360deg); }
}

@keyframes up-lt-pin-glow {
    0%, 100% { filter: drop-shadow(0 2px 4px rgba(30, 27, 22, 0.2)); transform: translateY(0); }
    50% { filter: drop-shadow(0 0 10px var(--lt-glow)); transform: translateY(-2px); }
}

@keyframes up-lt-pin-rattle {
    0%, 100% { transform: translateX(-50%) rotate(-5deg); }
    25% { transform: translateX(-50%) rotate(5deg); }
    50% { transform: translateX(-50%) rotate(-4deg); }
    75% { transform: translateX(-50%) rotate(4deg); }
}

@keyframes up-lt-hub-pulse {
    0%, 100% { transform: scale(1); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 2px 10px rgba(30, 27, 22, 0.12); }
    50% { transform: scale(1.07); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 0 18px var(--lt-glow); }
}

@keyframes up-lt-bead-orbit {
    to { transform: rotate(360deg); }
}

@keyframes up-lt-bead-twinkle {
    0%, 100% { transform: scale(0.5); opacity: 0.25; }
    40%, 60% { transform: scale(1.15); opacity: 1; }
}

@keyframes up-lt-shock-wave {
    0% { transform: scale(0.82); opacity: 0.7; border-width: 3px; }
    100% { transform: scale(1.35); opacity: 0; border-width: 1px; }
}

@keyframes up-lt-rays-drift {
    0%, 100% { transform: translateY(-46%) rotate(0deg) scale(1); opacity: 0.35; }
    50% { transform: translateY(-46%) rotate(8deg) scale(1.05); opacity: 0.6; }
}

@keyframes up-lt-dust-float {
    0%, 100% { transform: translateY(0); opacity: 0.35; }
    50% { transform: translateY(-4px); opacity: 0.6; }
}

@keyframes up-lt-draw-flash {
    0%, 100% { filter: brightness(1); }
    50% { filter: brightness(1.08); }
}

@keyframes up-lt-draw-gem {
    0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.4); }
    50% { transform: scale(1.2); box-shadow: 0 0 12px rgba(255, 255, 255, 0.55); }
}

@keyframes up-lt-draw-shimmer {
    0% { transform: translateX(-130%) skewX(-14deg); }
    100% { transform: translateX(230%) skewX(-14deg); }
}

@keyframes up-lt-metric-live {
    0%, 100% { box-shadow: 0 0 0 0 rgba(45, 90, 74, 0.08); }
    50% { box-shadow: 0 0 0 5px rgba(45, 90, 74, 0.06); }
}

@keyframes up-lt-result-burst {
    0% { transform: scale(0.72); opacity: 0; }
    55% { transform: scale(1.08); opacity: 1; }
    100% { transform: scale(1); opacity: 1; }
}

@keyframes up-lt-result-ring-spin {
    to { transform: rotate(360deg); }
}

@keyframes up-lt-result-pop {
    from { transform: translateY(8px); }
    to { transform: translateY(0); }
}

@keyframes up-lt-state-dot {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.35); opacity: 0.65; }
}

/* ?? Activity center ?? */

@keyframes up-act-hub-pulse {
    0%, 100% { filter: drop-shadow(0 0 12px rgba(196, 162, 78, 0.18)); }
    50% { filter: drop-shadow(0 0 18px rgba(45, 90, 74, 0.22)); }
}

.up-act-vault {
    position: relative;
    padding: 22px 24px 20px;
    margin-bottom: 16px;
    border-radius: var(--ps-radius-xl);
    overflow: hidden;
    color: var(--ps-ink);
    background:
        radial-gradient(ellipse 70% 90% at 0% 0%, rgba(45, 90, 74, 0.08) 0%, transparent 58%),
        radial-gradient(ellipse 55% 70% at 100% 100%, rgba(154, 123, 47, 0.1) 0%, transparent 55%),
        linear-gradient(158deg, #FFFCF8 0%, var(--ps-surface) 50%, var(--ps-surface-2) 100%);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
}

.up-act-vault-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.up-act-vault-bg::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -18%;
    width: 58%;
    height: 200%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.14), transparent);
    animation: up-gf-vault-sweep 9s ease-in-out infinite;
}

.up-act-vault-hub {
    position: absolute;
    top: -42px;
    right: -20px;
    width: min(280px, 52vw);
    height: min(280px, 52vw);
    opacity: 0.48;
    animation: up-act-hub-pulse 4.2s ease-in-out infinite;
}

.up-act-vault-hub-aura {
    position: absolute;
    inset: -8%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(196, 162, 78, 0.2) 0%, rgba(45, 90, 74, 0.1) 48%, transparent 72%);
    animation: up-lt-aura-breathe 4.2s ease-in-out infinite;
}

.up-act-vault-hub-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: linear-gradient(165deg, rgba(255, 252, 248, 0.52) 0%, rgba(230, 222, 210, 0.32) 100%);
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, 0.5),
        0 12px 32px rgba(154, 123, 47, 0.1),
        0 0 0 1px rgba(154, 123, 47, 0.05);
}

.up-act-vault-hub-orbit {
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    background: conic-gradient(from 0deg, rgba(196, 162, 78, 0.75), rgba(45, 90, 74, 0.4), rgba(232, 212, 138, 0.65), rgba(196, 162, 78, 0.22), rgba(196, 162, 78, 0.75));
    -webkit-mask: radial-gradient(circle, transparent 56%, #000 57%, #000 68%, transparent 69%);
    mask: radial-gradient(circle, transparent 56%, #000 57%, #000 68%, transparent 69%);
    animation: up-lt-rim-chase 3.2s linear infinite;
    opacity: 0.62;
}

.up-act-vault-hub-face {
    position: absolute;
    inset: 16%;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(160deg, rgba(255, 252, 248, 0.72) 0%, rgba(243, 238, 230, 0.62) 100%);
    border: 1px solid rgba(154, 123, 47, 0.16);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.65),
        0 14px 36px rgba(154, 123, 47, 0.12);
    animation: up-gf-gem-float 3.2s ease-in-out infinite;
}

.up-act-vault-hub-face .layui-icon {
    font-size: clamp(34px, 9vw, 48px);
    color: var(--ps-gold);
    filter: drop-shadow(0 4px 10px rgba(154, 123, 47, 0.2));
}

.up-act-vault-spark {
    position: absolute;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--ps-gold);
    box-shadow: 0 0 10px rgba(154, 123, 47, 0.28);
    opacity: 0.55;
    animation: up-gf-spark-drift 5s ease-in-out infinite;
}

.up-act-vault-spark--a { top: 14%; left: 10%; animation-delay: 0s; }
.up-act-vault-spark--b { top: 58%; left: 82%; animation-delay: -1.2s; }
.up-act-vault-spark--c { top: 26%; left: 58%; animation-delay: -2.4s; width: 5px; height: 5px; }
.up-act-vault-spark--d { top: 72%; left: 24%; animation-delay: -3.1s; background: rgba(45, 90, 74, 0.55); box-shadow: 0 0 12px rgba(45, 90, 74, 0.28); opacity: 0.45; }

.up-act-vault-dust {
    position: absolute;
    inset: 0;
    opacity: 0.32;
    background-image:
        radial-gradient(circle at 14% 22%, rgba(154, 123, 47, 0.14) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 82% 18%, rgba(45, 90, 74, 0.12) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 56% 68%, rgba(154, 123, 47, 0.1) 0 1px, transparent 2px),
        radial-gradient(circle at 28% 78%, rgba(45, 90, 74, 0.08) 0 1px, transparent 2px);
    animation: up-lt-dust-float 7s ease-in-out infinite alternate;
}

.up-act-vault .ps-kicker {
    margin: 0 0 8px;
    color: var(--ps-gold);
}

.is-activities .up-gf-crate.is-joined {
    --gf-accent: rgba(154, 123, 47, 0.16);
    border-color: rgba(154, 123, 47, 0.2);
}

.is-activities .up-gf-crate.is-joined .up-gf-crate-seal-col {
    background: linear-gradient(180deg, rgba(255, 252, 248, 0.72) 0%, rgba(154, 123, 47, 0.08) 100%);
}

.is-activities .up-gf-crate.is-joined .up-gf-crate-state.is-claimed {
    color: #8B6914;
    border-color: rgba(154, 123, 47, 0.42);
    background: rgba(255, 252, 248, 0.62);
}

/* ?????????????? */
.is-activities .up-gf-crate-foot {
    --act-foot-orb: 84px;
    --act-foot-gap: 12px;
    --act-foot-btn: var(--ps-touch, 44px);
    --act-foot-pad: 32px;
    min-height: calc(var(--act-foot-orb) + var(--act-foot-gap) + var(--act-foot-btn) + var(--act-foot-pad));
    box-sizing: border-box;
}

.is-activities .up-gf-crate-act .up-act-cancel-btn,
.is-activities .up-gf-crate-act .up-gf-claim-btn,
.is-activities .up-gf-crate-act .up-gift-claim-btn {
    min-height: var(--act-foot-btn, var(--ps-touch, 44px));
    box-sizing: border-box;
}

.is-activities .up-gf-loot-orb.is-empty {
    pointer-events: none;
    cursor: default;
}

.is-activities .up-gf-loot-orb.is-empty .up-gf-loot-orb-core strong {
    color: var(--ps-ink-faint);
    font-size: 15px;
}

.is-activities .up-gf-loot-orb.is-empty .up-gf-loot-orb-core em {
    color: var(--ps-ink-faint);
}

/* ??????????????? */
.is-activities .up-gf-crate.is-no-reward {
    --gf-accent: rgba(154, 123, 47, 0.12);
    --gf-ring-soft: rgba(154, 123, 47, 0.08);
    border-color: rgba(154, 123, 47, 0.18);
    box-shadow: 0 10px 28px rgba(154, 123, 47, 0.06), inset 0 1px 0 rgba(255, 255, 255, 0.65);
    animation: up-gf-crate-edge 3.8s ease-in-out infinite;
    opacity: 1;
}

.is-activities .up-gf-crate.is-no-reward .up-gf-crate-aura {
    opacity: 0.72;
    background: radial-gradient(circle at 30% 50%, rgba(154, 123, 47, 0.14) 0%, transparent 55%);
    animation: up-gf-aura-breathe 3.8s ease-in-out infinite;
}

.is-activities .up-gf-crate.is-no-reward .up-gf-crate-shine {
    animation: up-gf-shine-loop 5.2s ease-in-out infinite;
}

.is-activities .up-gf-crate.is-no-reward .up-gf-crate-seal-col {
    background: linear-gradient(180deg, rgba(255, 252, 248, 0.72) 0%, rgba(154, 123, 47, 0.07) 100%);
}

.is-activities .up-gf-crate.is-no-reward .up-gf-crate-seal-fx > * {
    opacity: 0.62;
}

.is-activities .up-gf-crate.is-no-reward .up-gf-crate-seal-ring {
    border: none;
}

.is-activities .up-gf-crate.is-no-reward .up-gf-crate-seal-ring::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    padding: 2px;
    background: conic-gradient(from 0deg, rgba(196, 162, 78, 0.55), rgba(107, 100, 88, 0.35), rgba(232, 212, 138, 0.45), rgba(196, 162, 78, 0.15), rgba(196, 162, 78, 0.55));
    -webkit-mask:
        linear-gradient(#000 0 0) content-box,
        linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask:
        linear-gradient(#000 0 0) content-box,
        linear-gradient(#000 0 0);
    mask-composite: exclude;
    animation: up-gf-seal-ring-spin 4.8s linear infinite;
}

.is-activities .up-gf-crate.is-no-reward .up-gf-crate-seal-core {
    border-color: rgba(154, 123, 47, 0.24);
    background: linear-gradient(160deg, #FFFCF8 0%, rgba(243, 232, 200, 0.42) 100%);
    animation: up-gf-seal-core-breathe 3.2s ease-in-out infinite;
}

.is-activities .up-gf-crate.is-no-reward .up-gf-crate-foot {
    background: linear-gradient(180deg, rgba(255, 252, 248, 0.62) 0%, rgba(154, 123, 47, 0.06) 100%);
}

.is-activities .up-gf-crate.is-no-reward .up-gf-loot-orb-ring {
    border-color: rgba(154, 123, 47, 0.32);
    animation: up-gf-orb-spin 6.5s linear infinite;
}

.is-activities .up-gf-crate.is-no-reward .up-gf-loot-orb-core {
    animation: up-gf-orb-pulse 3.2s ease-in-out infinite;
}

.is-activities .up-gf-crate.is-no-reward .up-gf-crate-state.is-locked {
    color: var(--ps-warn);
    border-color: rgba(166, 124, 46, 0.28);
    background: rgba(255, 252, 248, 0.72);
}

.is-activities .up-gf-crate-act .up-act-cancel-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 88px;
    padding: 0 14px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1;
    color: var(--ps-ink-muted);
    background: var(--ps-surface);
    border: 1px solid rgba(30, 27, 22, 0.14);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
    cursor: pointer;
    transition: background 0.15s var(--ps-ease), border-color 0.15s, color 0.15s, transform 0.15s var(--ps-ease);
}

.is-activities .up-gf-crate-act .up-act-cancel-btn:hover:not(:disabled) {
    color: #7A4A32;
    border-color: rgba(154, 123, 47, 0.38);
    background: rgba(255, 252, 248, 0.98);
    transform: translateY(-1px);
}

.is-activities .up-gf-crate-act .up-act-cancel-btn:active:not(:disabled) {
    transform: translateY(0);
}

.is-activities .up-gf-crate-act .up-act-cancel-btn:focus-visible {
    outline: 2px solid rgba(154, 123, 47, 0.28);
    outline-offset: 2px;
}

.is-activities .ps-empty {
    margin-top: 4px;
}

.is-activities .up-gf-crate-body {
    gap: 6px;
}

.is-activities .up-act-crate-desc {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0;
    padding: 6px 9px;
    border-radius: 8px;
    background: rgba(243, 238, 230, 0.45);
    border: 1px dashed rgba(30, 27, 22, 0.09);
}

.is-activities .up-act-crate-desc-mark {
    flex-shrink: 0;
    margin-top: 1px;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.2;
    color: var(--ps-ink-faint);
    background: rgba(255, 252, 248, 0.9);
    border: 1px solid rgba(30, 27, 22, 0.06);
}

.is-activities .up-act-crate-desc-text {
    margin: 0;
    flex: 1;
    min-width: 0;
    font-size: 12px;
    line-height: 1.55;
    color: var(--ps-ink-muted);
    white-space: pre-line;
    text-wrap: pretty;
}

.is-activities .up-act-crate-desc + .up-gf-crate-tags {
    margin-top: 2px;
}

/* ????????? hover ?? / ?? / ?? orb ?? */
.is-activities .up-gf-crate {
    transition: border-color 0.25s, box-shadow 0.25s;
}

.is-activities .up-gf-crate.is-ready:hover,
.is-activities .up-gf-crate.is-joined:hover,
.is-activities .up-gf-crate.is-locked:hover,
.is-activities .up-gf-crate.is-done:hover,
.is-activities .up-gf-crate.is-no-reward:hover {
    transform: none;
    animation: up-gf-crate-edge 3.2s ease-in-out infinite;
}

.is-activities .up-gf-crate.is-no-reward:hover {
    animation: up-gf-crate-edge 3.8s ease-in-out infinite;
}

.is-activities .up-gf-crate.is-ready:hover {
    box-shadow: 0 10px 28px rgba(45, 90, 74, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.is-activities .up-gf-crate.is-ready:hover .up-gf-crate-shine {
    animation: up-gf-shine-loop 4.8s ease-in-out infinite;
}

.is-activities .up-gf-loot-orb:hover .up-gf-loot-orb-core {
    transform: none;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

@media (prefers-reduced-motion: reduce) {
    .up-act-vault-bg::after,
    .up-act-vault-hub,
    .up-act-vault-hub-aura,
    .up-act-vault-hub-orbit,
    .up-act-vault-hub-face,
    .up-act-vault-spark,
    .up-act-vault-dust {
        animation: none !important;
    }

    .up-daily-vault-bg::after,
    .up-daily-vault-sigil,
    .up-daily-vault-sigil-aura,
    .up-daily-vault-sigil-orbit,
    .up-daily-vault-sigil-face,
    .up-daily-vault-spark,
    .up-daily-vault-dust {
        animation: none !important;
    }

    .up-ac-vault-bg::after,
    .up-ac-vault-sigil,
    .up-ac-vault-sigil-aura,
    .up-ac-vault-sigil-orbit,
    .up-ac-vault-sigil-face,
    .up-ac-vault-spark,
    .up-ac-vault-dust {
        animation: none !important;
    }

    .is-activities .up-gf-crate.is-ready:hover {
        animation: none !important;
    }
}

.ps-activity-reward-detail .ps-modal-panel {
    width: min(100%, 440px);
}

.ps-activity-reward-emblem span {
    font-size: 15px;
    letter-spacing: 0.06em;
}

.ps-activity-reward-detail-panel.is-tier-ready .ps-activity-reward-emblem {
    background: var(--ps-gold);
    box-shadow:
        0 0 0 4px rgba(154, 123, 47, 0.12),
        0 4px 14px rgba(154, 123, 47, 0.22);
}

.ps-activity-reward-detail-panel.is-tier-ready .ps-activity-reward-emblem span {
    color: #fff;
}

.ps-activity-reward-detail-panel.is-tier-joined .ps-activity-reward-emblem {
    background: var(--ps-accent-soft);
    box-shadow: 0 0 0 4px rgba(45, 90, 74, 0.1);
}

.ps-activity-reward-detail-panel.is-tier-joined .ps-activity-reward-emblem span {
    color: var(--ps-accent);
}

/* ?? Checkin vault hero ?? */

.up-daily-vault {
    position: relative;
    padding: 22px 24px 20px;
    margin-bottom: 16px;
    border-radius: var(--ps-radius-xl);
    overflow: hidden;
    color: var(--ps-ink);
    background:
        radial-gradient(ellipse 70% 90% at 0% 0%, rgba(45, 90, 74, 0.1) 0%, transparent 58%),
        radial-gradient(ellipse 55% 70% at 100% 100%, rgba(196, 162, 78, 0.09) 0%, transparent 55%),
        linear-gradient(158deg, #FFFCF8 0%, var(--ps-surface) 50%, var(--ps-surface-2) 100%);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
}

.up-daily-vault-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.up-daily-vault-bg::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -18%;
    width: 58%;
    height: 200%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.14), transparent);
    animation: up-gf-vault-sweep 9s ease-in-out infinite;
}

.up-daily-vault-sigil {
    position: absolute;
    top: -36px;
    right: -24px;
    width: min(250px, 46vw);
    height: min(250px, 46vw);
    opacity: 0.46;
}

.up-daily-vault-sigil-aura {
    position: absolute;
    inset: -10%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(45, 90, 74, 0.24) 0%, rgba(196, 162, 78, 0.12) 48%, transparent 72%);
    animation: up-lt-aura-breathe 4.4s ease-in-out infinite;
}

.up-daily-vault-sigil-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: linear-gradient(165deg, rgba(255, 252, 248, 0.58) 0%, rgba(230, 222, 210, 0.32) 100%);
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, 0.68),
        0 10px 28px rgba(45, 90, 74, 0.1);
}

.up-daily-vault-sigil-orbit {
    position: absolute;
    inset: -3px;
    border-radius: 50%;
    background: conic-gradient(from 0deg, rgba(45, 90, 74, 0.75), rgba(196, 162, 78, 0.45), rgba(74, 154, 120, 0.65), rgba(45, 90, 74, 0.25), rgba(45, 90, 74, 0.75));
    -webkit-mask: radial-gradient(circle, transparent 58%, #000 59%, #000 66%, transparent 67%);
    mask: radial-gradient(circle, transparent 58%, #000 59%, #000 66%, transparent 67%);
    animation: up-lt-rim-chase 3.4s linear infinite;
}

.up-daily-vault-sigil-face {
    position: absolute;
    inset: 16%;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(160deg, rgba(255, 252, 248, 0.96) 0%, rgba(243, 238, 230, 0.88) 100%);
    border: 1px solid rgba(45, 90, 74, 0.18);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.92),
        0 10px 28px rgba(45, 90, 74, 0.12);
    animation: up-gf-gem-float 3.4s ease-in-out infinite;
}

.up-daily-vault-sigil-face .layui-icon {
    font-size: clamp(28px, 8vw, 42px);
    color: var(--ps-accent);
    filter: drop-shadow(0 4px 8px rgba(45, 90, 74, 0.22));
}

.up-daily-vault-spark {
    position: absolute;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: rgba(74, 154, 120, 0.9);
    box-shadow: 0 0 10px rgba(45, 90, 74, 0.4);
    opacity: 0.5;
    animation: up-gf-spark-drift 5.2s ease-in-out infinite;
}

.up-daily-vault-spark--a { top: 16%; left: 10%; animation-delay: 0s; }
.up-daily-vault-spark--b { top: 60%; left: 80%; animation-delay: -1.4s; }
.up-daily-vault-spark--c { top: 30%; left: 54%; animation-delay: -2.6s; width: 3px; height: 3px; background: var(--ps-gold); box-shadow: 0 0 10px rgba(154, 123, 47, 0.35); }
.up-daily-vault-spark--d { top: 74%; left: 22%; animation-delay: -3.2s; opacity: 0.38; }

.up-daily-vault-dust {
    position: absolute;
    inset: 0;
    opacity: 0.38;
    background-image:
        radial-gradient(circle at 14% 22%, rgba(45, 90, 74, 0.12) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 78% 18%, rgba(196, 162, 78, 0.12) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 52% 72%, rgba(74, 154, 120, 0.1) 0 1.5px, transparent 2.5px);
    animation: up-lt-dust-float 7s ease-in-out infinite alternate;
}

.is-checkin .up-daily-vault .ps-kicker {
    color: var(--ps-accent);
}

.is-checkin .up-lt-metric strong em {
    font-style: normal;
    font-size: 14px;
    font-weight: 700;
    color: var(--ps-ink-faint);
}

.is-checkin .up-lt-metric.is-live strong em {
    color: rgba(45, 90, 74, 0.55);
}

/* ?? Announcements ?? */

.is-announcements.ps-page {
    width: 100%;
    gap: 16px;
}

.up-an-vault {
    position: relative;
    padding: 22px 24px 20px;
    margin-bottom: 0;
    border-radius: var(--ps-radius-xl);
    overflow: hidden;
    color: var(--ps-ink);
    background:
        radial-gradient(ellipse 72% 92% at 0% 0%, rgba(61, 90, 128, 0.11) 0%, transparent 58%),
        radial-gradient(ellipse 58% 72% at 100% 100%, rgba(45, 90, 74, 0.08) 0%, transparent 55%),
        linear-gradient(158deg, #FFFCF8 0%, var(--ps-surface) 50%, var(--ps-surface-2) 100%);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
}

.up-an-vault-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.up-an-vault-bg::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -18%;
    width: 58%;
    height: 200%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.14), transparent);
    animation: up-gf-vault-sweep 9s ease-in-out infinite;
}

.up-an-vault-sigil {
    position: absolute;
    top: -32px;
    right: -20px;
    width: min(210px, 40vw);
    height: min(210px, 40vw);
    opacity: 0.42;
}

.up-an-vault-sigil-aura {
    position: absolute;
    inset: -10%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(61, 90, 128, 0.22) 0%, rgba(45, 90, 74, 0.1) 48%, transparent 72%);
    animation: up-lt-aura-breathe 4.4s ease-in-out infinite;
}

.up-an-vault-sigil-ring {
    position: absolute;
    inset: 8%;
    border-radius: 50%;
    border: 1px dashed rgba(61, 90, 128, 0.22);
    animation: up-gf-seal-ring-spin 48s linear infinite;
}

.up-an-vault-sigil-face {
    position: absolute;
    inset: 22%;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-size: clamp(28px, 5vw, 38px);
    color: var(--ps-sapphire);
    background: linear-gradient(160deg, rgba(255, 252, 248, 0.96) 0%, rgba(243, 238, 230, 0.88) 100%);
    border: 1px solid rgba(61, 90, 128, 0.18);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.92),
        0 10px 28px rgba(61, 90, 128, 0.12);
}

.up-an-vault-spark {
    position: absolute;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--ps-sapphire);
    box-shadow: 0 0 10px rgba(61, 90, 128, 0.4);
    animation: up-gf-spark-drift 5s ease-in-out infinite;
    pointer-events: none;
}

.up-an-vault-spark--a { top: 16%; left: 14%; animation-delay: 0s; }
.up-an-vault-spark--b { top: 58%; left: 72%; animation-delay: -1.4s; width: 3px; height: 3px; }
.up-an-vault-spark--c { top: 34%; left: 84%; animation-delay: -2.8s; background: var(--ps-gold); box-shadow: 0 0 8px rgba(154, 123, 47, 0.35); }

.up-an-vault-dust {
    position: absolute;
    inset: 0;
    opacity: 0.42;
    background-image:
        radial-gradient(circle at 12% 24%, rgba(61, 90, 128, 0.12) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 84% 20%, rgba(154, 123, 47, 0.1) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 58% 70%, rgba(45, 90, 74, 0.08) 0 1px, transparent 2px);
    animation: up-lt-dust-float 7s ease-in-out infinite alternate;
}

.is-announcements .up-an-vault .ps-kicker {
    color: var(--ps-sapphire);
}

.up-an-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 0;
}

.up-an-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    color: var(--ps-ink-muted);
    background: var(--ps-surface);
    border: 1px solid var(--ps-border);
    transition: color 0.15s, border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.up-an-filter-chip em {
    font-style: normal;
    font-size: 11px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--ps-ink-faint);
}

.up-an-filter-chip:hover {
    color: var(--ps-ink);
    border-color: rgba(61, 90, 128, 0.18);
}

.up-an-filter-chip.is-active {
    color: var(--ps-sapphire);
    background: var(--ps-sapphire-soft);
    border-color: rgba(61, 90, 128, 0.18);
    box-shadow: var(--ps-shadow-sm);
}

.up-an-filter-chip.is-active em {
    color: var(--ps-sapphire);
}

.up-an-board {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.up-an-brief {
    --an-accent: rgba(30, 27, 22, 0.06);
    --an-ring-soft: rgba(45, 90, 74, 0.06);
    --an-glow: rgba(45, 90, 74, 0.18);
    --an-icon: var(--ps-ink-muted);
    --an-stroke: rgba(30, 27, 22, 0.1);
    --an-rim-a: rgba(45, 90, 74, 0.55);
    --an-rim-b: rgba(196, 162, 78, 0.45);
    --an-rim-c: rgba(61, 90, 128, 0.35);
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 0;
    align-items: stretch;
    min-height: 148px;
    padding: 0;
    border-radius: var(--ps-radius-xl);
    background: var(--ps-surface);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
    overflow: hidden;
}

.up-an-brief.is-cat-system {
    --an-accent: rgba(61, 90, 128, 0.1);
    --an-ring-soft: rgba(61, 90, 128, 0.07);
    --an-glow: rgba(61, 90, 128, 0.22);
    --an-icon: var(--ps-sapphire);
    --an-stroke: rgba(61, 90, 128, 0.18);
    --an-rim-a: rgba(61, 90, 128, 0.75);
    --an-rim-b: rgba(122, 158, 196, 0.55);
    --an-rim-c: rgba(45, 90, 74, 0.35);
}

.up-an-brief.is-cat-event {
    --an-accent: rgba(154, 123, 47, 0.1);
    --an-ring-soft: rgba(154, 123, 47, 0.07);
    --an-glow: rgba(196, 162, 78, 0.24);
    --an-icon: var(--ps-gold);
    --an-stroke: rgba(154, 123, 47, 0.2);
    --an-rim-a: rgba(196, 162, 78, 0.85);
    --an-rim-b: rgba(154, 123, 47, 0.55);
    --an-rim-c: rgba(232, 212, 138, 0.45);
}

.up-an-brief.is-cat-maint {
    --an-accent: rgba(155, 61, 61, 0.08);
    --an-ring-soft: rgba(155, 61, 61, 0.06);
    --an-glow: rgba(155, 61, 61, 0.2);
    --an-icon: var(--ps-danger);
    --an-stroke: rgba(155, 61, 61, 0.18);
    --an-rim-a: rgba(155, 61, 61, 0.65);
    --an-rim-b: rgba(220, 140, 140, 0.45);
    --an-rim-c: rgba(155, 61, 61, 0.25);
}

.up-an-brief.is-cat-patch {
    --an-accent: rgba(45, 90, 74, 0.1);
    --an-ring-soft: rgba(45, 90, 74, 0.07);
    --an-glow: rgba(45, 90, 74, 0.2);
    --an-icon: var(--ps-accent);
    --an-stroke: rgba(45, 90, 74, 0.18);
    --an-rim-a: rgba(45, 90, 74, 0.7);
    --an-rim-b: rgba(120, 180, 150, 0.5);
    --an-rim-c: rgba(196, 162, 78, 0.3);
}

.up-an-brief.is-pinned {
    border-color: rgba(154, 123, 47, 0.22);
    box-shadow:
        0 10px 28px rgba(154, 123, 47, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.up-an-brief-mark {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 20px 12px;
    border-right: 1px solid rgba(30, 27, 22, 0.06);
    background: linear-gradient(180deg, rgba(255, 252, 248, 0.92) 0%, var(--an-ring-soft) 100%);
    overflow: hidden;
}

.up-an-brief-mark::after {
    content: '';
    position: absolute;
    left: 0;
    top: 16%;
    bottom: 16%;
    width: 2px;
    border-radius: 999px;
    background: linear-gradient(180deg, transparent, var(--an-glow), transparent);
    opacity: 0.5;
    pointer-events: none;
}

.up-an-brief-sigil {
    position: relative;
    z-index: 1;
    width: 64px;
    height: 64px;
}

.up-an-brief-sigil-aura {
    position: absolute;
    inset: -8%;
    border-radius: 50%;
    background: radial-gradient(circle, var(--an-glow) 0%, transparent 68%);
    animation: up-lt-aura-breathe 4.4s ease-in-out infinite;
    pointer-events: none;
}

.up-an-brief.is-pinned .up-an-brief-sigil-aura {
    animation-duration: 3.2s;
}

.up-an-brief-sigil-orbit {
    position: absolute;
    inset: -2px;
    border-radius: 50%;
    background: conic-gradient(from 0deg, var(--an-rim-a), var(--an-rim-b), var(--an-rim-c), var(--an-rim-a));
    -webkit-mask: radial-gradient(circle, transparent 58%, #000 59%, #000 66%, transparent 67%);
    mask: radial-gradient(circle, transparent 58%, #000 59%, #000 66%, transparent 67%);
    animation: up-lt-rim-chase 3.4s linear infinite;
    pointer-events: none;
}

.up-an-brief-sigil-core {
    position: absolute;
    inset: 18%;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: var(--an-icon);
    background: linear-gradient(160deg, rgba(255, 252, 248, 0.96) 0%, rgba(243, 238, 230, 0.88) 100%);
    border: 1px solid var(--an-stroke);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.92),
        0 6px 16px var(--an-accent);
}

.up-an-brief-sigil-core .layui-icon {
    font-size: 21px;
    line-height: 1;
    filter: drop-shadow(0 2px 4px var(--an-accent));
}

.up-an-brief-id {
    position: relative;
    z-index: 1;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.08em;
    font-variant-numeric: tabular-nums;
    color: var(--ps-ink-faint);
}

.up-an-brief-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 12px;
    padding: 22px 24px 22px 20px;
}

.up-an-brief-top {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px 16px;
}

.up-an-brief-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.up-an-brief-time {
    flex-shrink: 0;
    margin-top: 3px;
    font-size: 11px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.01em;
    color: var(--ps-ink-faint);
    white-space: nowrap;
}

.up-an-tag {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.03em;
    border: 1px solid var(--ps-border);
    background: rgba(30, 27, 22, 0.04);
    color: var(--ps-ink-muted);
}

.up-an-tag.is-pin {
    color: var(--ps-warn);
    background: rgba(166, 124, 46, 0.1);
    border-color: rgba(166, 124, 46, 0.16);
}

.up-an-tag.is-cat-system {
    color: var(--ps-sapphire);
    background: var(--ps-sapphire-soft);
    border-color: rgba(61, 90, 128, 0.14);
}

.up-an-tag.is-cat-event {
    color: var(--ps-gold);
    background: var(--ps-gold-soft);
    border-color: rgba(154, 123, 47, 0.14);
}

.up-an-tag.is-cat-maint {
    color: var(--ps-danger);
    background: rgba(155, 61, 61, 0.08);
    border-color: rgba(155, 61, 61, 0.14);
}

.up-an-tag.is-cat-patch {
    color: var(--ps-accent);
    background: var(--ps-accent-soft);
    border-color: rgba(45, 90, 74, 0.14);
}

.up-an-tag.is-cat-misc {
    color: var(--ps-ink-muted);
    background: var(--ps-surface-2);
}

.up-an-brief-title {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.35;
    color: var(--ps-ink);
}

.up-an-brief.is-pinned .up-an-brief-title {
    color: #7a5c12;
}

.up-an-brief-sheet {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    min-height: 54px;
    padding: 14px 16px;
    border-radius: var(--ps-radius-sm);
    background: rgba(243, 238, 230, 0.55);
    border: 1px dashed rgba(30, 27, 22, 0.09);
}

.up-an-brief-sheet-mark {
    flex-shrink: 0;
    margin-top: 1px;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.2;
    color: var(--ps-ink-faint);
    background: rgba(255, 252, 248, 0.92);
    border: 1px solid rgba(30, 27, 22, 0.06);
}

.up-an-brief-content {
    flex: 1;
    min-width: 0;
    font-size: 13px;
    line-height: 1.6;
    color: var(--ps-ink-muted);
    word-break: break-word;
}

.up-an-brief-content > :first-child {
    margin-top: 0;
}

.up-an-brief-content > :last-child {
    margin-bottom: 0;
}

.up-an-brief-content p {
    margin: 0 0 8px;
}

.up-an-brief-content ul,
.up-an-brief-content ol {
    margin: 0 0 8px;
    padding-left: 1.2em;
}

.up-an-brief-content li + li {
    margin-top: 4px;
}

.up-an-brief-content a {
    color: var(--ps-accent);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.up-an-brief-content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--ps-radius-sm);
}

.up-an-brief-content blockquote {
    margin: 0 0 8px;
    padding: 8px 10px;
    border-left: 3px solid rgba(61, 90, 128, 0.28);
    border-radius: 0 var(--ps-radius-xs) var(--ps-radius-xs) 0;
    background: rgba(255, 252, 248, 0.72);
}

.up-an-brief[hidden] {
    display: none;
}

@media (max-width: 720px) {
    .up-an-vault {
        padding: 18px 16px 16px;
    }

    .up-an-vault-sigil {
        top: auto;
        bottom: -36px;
        right: -24px;
        width: min(170px, 44vw);
        height: min(170px, 44vw);
        opacity: 0.24;
    }

    .up-an-brief {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .up-an-brief-mark {
        flex-direction: row;
        justify-content: flex-start;
        gap: 14px;
        padding: 14px 16px;
        border-right: none;
        border-bottom: 1px solid rgba(30, 27, 22, 0.06);
    }

    .up-an-brief-mark::after {
        top: auto;
        bottom: 0;
        left: 14%;
        right: 14%;
        width: auto;
        height: 2px;
    }

    .up-an-brief-body {
        padding: 16px 16px 18px;
    }

    .up-an-brief-title {
        font-size: 16px;
    }

    .up-an-brief-sheet {
    flex-direction: column;
        gap: 8px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .up-an-vault-bg::after,
    .up-an-vault-sigil-aura,
    .up-an-vault-sigil-ring,
    .up-an-vault-spark,
    .up-an-vault-dust,
    .up-an-brief-sigil-aura,
    .up-an-brief-sigil-orbit {
        animation: none;
    }
}

/* ?? Account vault ?? */

.up-ac-vault {
    position: relative;
    padding: 22px 24px 20px;
    margin-bottom: 16px;
    border-radius: var(--ps-radius-xl);
    overflow: hidden;
    color: var(--ps-ink);
    background:
        radial-gradient(ellipse 72% 92% at 0% 0%, rgba(61, 90, 128, 0.1) 0%, transparent 58%),
        radial-gradient(ellipse 58% 72% at 100% 100%, rgba(45, 90, 74, 0.09) 0%, transparent 55%),
        linear-gradient(158deg, #FFFCF8 0%, var(--ps-surface) 50%, var(--ps-surface-2) 100%);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
}

.up-ac-vault-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.up-ac-vault-bg::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -18%;
    width: 58%;
    height: 200%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.14), transparent);
    animation: up-gf-vault-sweep 9s ease-in-out infinite;
}

.up-ac-vault-sigil {
    position: absolute;
    top: -36px;
    right: -24px;
    width: min(250px, 46vw);
    height: min(250px, 46vw);
    opacity: 0.44;
}

.up-ac-vault-sigil-aura {
    position: absolute;
    inset: -10%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(61, 90, 128, 0.22) 0%, rgba(45, 90, 74, 0.12) 48%, transparent 72%);
    animation: up-lt-aura-breathe 4.4s ease-in-out infinite;
}

.up-ac-vault-sigil-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: linear-gradient(165deg, rgba(255, 252, 248, 0.58) 0%, rgba(230, 222, 210, 0.32) 100%);
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, 0.68),
        0 10px 28px rgba(61, 90, 128, 0.1);
}

.up-ac-vault-sigil-orbit {
    position: absolute;
    inset: -3px;
    border-radius: 50%;
    background: conic-gradient(from 0deg, rgba(61, 90, 128, 0.7), rgba(45, 90, 74, 0.55), rgba(196, 162, 78, 0.45), rgba(61, 90, 128, 0.25), rgba(61, 90, 128, 0.7));
    -webkit-mask: radial-gradient(circle, transparent 58%, #000 59%, #000 66%, transparent 67%);
    mask: radial-gradient(circle, transparent 58%, #000 59%, #000 66%, transparent 67%);
    animation: up-lt-rim-chase 3.4s linear infinite;
}

.up-ac-vault-sigil-face {
    position: absolute;
    inset: 16%;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: clamp(28px, 8vw, 42px);
    font-weight: 800;
    letter-spacing: -0.03em;
    text-transform: uppercase;
    color: var(--ps-sapphire);
    background: linear-gradient(160deg, rgba(255, 252, 248, 0.96) 0%, rgba(243, 238, 230, 0.88) 100%);
    border: 1px solid rgba(61, 90, 128, 0.18);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.92),
        0 10px 28px rgba(61, 90, 128, 0.12);
    animation: up-gf-gem-float 3.4s ease-in-out infinite;
}

.up-ac-vault-spark {
    position: absolute;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--ps-gold);
    box-shadow: 0 0 10px rgba(154, 123, 47, 0.45);
    animation: up-gf-spark-drift 5s ease-in-out infinite;
    pointer-events: none;
}

.up-ac-vault-spark--a { top: 18%; left: 12%; animation-delay: 0s; }
.up-ac-vault-spark--b { top: 62%; left: 78%; animation-delay: -1.2s; }
.up-ac-vault-spark--c { top: 28%; left: 55%; animation-delay: -2.4s; width: 3px; height: 3px; }
.up-ac-vault-spark--d { top: 72%; left: 24%; animation-delay: -3.1s; width: 5px; height: 5px; opacity: 0.35; }
.up-ac-vault-spark--e { top: 42%; left: 88%; animation-delay: -1.8s; width: 3px; height: 3px; background: rgba(45, 90, 74, 0.85); box-shadow: 0 0 8px rgba(45, 90, 74, 0.35); }
.up-ac-vault-spark--f { top: 8%; left: 68%; animation-delay: -4.2s; width: 4px; height: 4px; }

.up-ac-vault-dust {
    position: absolute;
    inset: 0;
    opacity: 0.45;
    background-image:
        radial-gradient(circle at 14% 22%, rgba(154, 123, 47, 0.14) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 82% 18%, rgba(45, 90, 74, 0.12) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 56% 68%, rgba(154, 123, 47, 0.1) 0 1px, transparent 2px),
        radial-gradient(circle at 28% 78%, rgba(45, 90, 74, 0.08) 0 1px, transparent 2px),
        radial-gradient(circle at 8% 46%, rgba(196, 162, 78, 0.11) 0 1px, transparent 2px),
        radial-gradient(circle at 92% 52%, rgba(61, 90, 128, 0.1) 0 1.5px, transparent 2.5px);
    animation: up-lt-dust-float 7s ease-in-out infinite alternate;
}

.is-account .up-ac-vault .ps-kicker {
    color: var(--ps-sapphire);
}

.up-ac-vault-sub {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 8px;
    margin: 8px 0 0;
    font-size: 13px;
    line-height: 1.45;
    color: var(--ps-ink-muted);
}

.up-ac-tier {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    color: var(--ps-ink-muted);
    background: rgba(30, 27, 22, 0.04);
    border: 1px solid var(--ps-border);
}

.up-ac-tier.is-live {
    color: var(--ps-accent);
    background: var(--ps-accent-soft);
    border-color: rgba(45, 90, 74, 0.16);
}

.up-ac-vault-dot {
    opacity: 0.45;
}

.up-ac-band {
    padding: 16px 18px;
    border-radius: var(--ps-radius);
    background: var(--ps-surface);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
}

.up-ac-band-head {
    margin-bottom: 12px;
}

.up-ac-band-title {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.up-ac-band-desc {
    margin: 4px 0 0;
    font-size: 12px;
    color: var(--ps-ink-muted);
}

.up-ac-band-metrics {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
}

.up-ac-vault-metrics,
.is-account .up-ac-vault-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.up-ac-vault-metrics .up-ac-stat {
    background: #fff;
    border: 1px solid var(--ps-border);
}

.up-ac-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 0;
    min-height: 68px;
    padding: 12px 10px;
    border-radius: var(--ps-radius-sm);
    background: var(--ps-surface-2);
    border: 1px solid rgba(30, 27, 22, 0.06);
    text-align: center;
}

.up-ac-stat strong {
    font-size: 20px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
    line-height: 1;
    color: var(--ps-ink);
}

.up-ac-stat span {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.25;
    color: var(--ps-ink-muted);
}

.up-ac-layout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.up-ac-panel {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 18px;
    border-radius: var(--ps-radius);
    background: var(--ps-surface);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
}

.up-ac-panel-head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.up-ac-ledger.is-collapsible.is-collapsed .up-ac-ledger-toggle-icon .layui-icon {
    transform: rotate(-90deg);
}

.up-ac-panel-head > div {
    flex: 1;
    min-width: 0;
}

.up-ac-panel-head h2 {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.up-ac-panel-head p {
    margin: 4px 0 0;
    font-size: 12px;
    line-height: 1.45;
    color: var(--ps-ink-muted);
}

.up-ac-panel-mark {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: var(--ps-accent-soft);
    color: var(--ps-accent);
    border: 1px solid rgba(45, 90, 74, 0.12);
}

.up-ac-panel-mark .layui-icon {
    font-size: 18px;
}

.up-ac-panel-mark.is-gold {
    background: var(--ps-gold-soft);
    color: var(--ps-gold);
    border-color: rgba(154, 123, 47, 0.14);
}

.up-ac-panel-mark.is-wallet {
    background: rgba(154, 123, 47, 0.1);
    color: var(--ps-gold);
    border-color: rgba(154, 123, 47, 0.12);
}

.up-ac-panel-mark.is-pass {
    background: rgba(61, 90, 128, 0.1);
    color: var(--ps-sapphire);
    border-color: rgba(61, 90, 128, 0.12);
}

.up-ac-panel-mark.is-security {
    background: rgba(30, 27, 22, 0.05);
    color: var(--ps-ink-muted);
    border-color: var(--ps-border);
}

.up-ac-pip {
    flex-shrink: 0;
    min-height: 24px;
    padding: 0 9px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    color: #fff;
    background: var(--ps-accent);
    display: grid;
    place-items: center;
    font-variant-numeric: tabular-nums;
}

.up-ac-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 14px;
    margin: 0;
}

.up-ac-facts--compact {
    margin-top: -4px;
}

.up-ac-fact {
    min-width: 0;
    padding: 10px 12px;
    border-radius: var(--ps-radius-sm);
    background: var(--ps-surface-2);
    border: 1px dashed rgba(30, 27, 22, 0.08);
}

.up-ac-fact dt {
    margin: 0 0 4px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ps-ink-faint);
}

.up-ac-fact dd {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
    color: var(--ps-ink);
    word-break: break-word;
}

.up-ac-fact dd.is-gold {
    color: var(--ps-gold);
    font-variant-numeric: tabular-nums;
}

.up-ac-fact dd.is-diamond {
    color: var(--ps-sapphire);
    font-variant-numeric: tabular-nums;
}

.up-ac-code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 12px;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: 6px;
    background: rgba(255, 252, 248, 0.8);
    border: 1px solid var(--ps-border);
}

.up-ac-muted {
    color: var(--ps-ink-faint);
    font-weight: 500;
}

.up-ac-tag {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    color: var(--ps-ink-muted);
    background: rgba(30, 27, 22, 0.04);
    border: 1px solid var(--ps-border);
}

.up-ac-tag.is-live {
    color: var(--ps-accent);
    background: var(--ps-accent-soft);
    border-color: rgba(45, 90, 74, 0.16);
}

.up-ac-tag.is-warn {
    color: var(--ps-warn);
    background: rgba(166, 124, 46, 0.1);
    border-color: rgba(166, 124, 46, 0.16);
}

.up-ac-pass-progress {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.up-ac-pass-progress-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    font-size: 12px;
    font-weight: 700;
    color: var(--ps-ink-muted);
    font-variant-numeric: tabular-nums;
}

.up-ac-pass-progress-track {
    height: 8px;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(30, 27, 22, 0.06);
    border: 1px solid var(--ps-border);
}

.up-ac-pass-progress-fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--ps-accent) 0%, rgba(74, 154, 120, 0.95) 100%);
    box-shadow: 0 0 12px rgba(45, 90, 74, 0.22);
    transition: width 0.35s var(--ps-ease);
}

.up-ac-pass-progress-hint {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    color: var(--ps-ink-muted);
}

.up-ac-link-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: var(--ps-touch);
    padding: 0 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    color: var(--ps-accent);
    background: var(--ps-accent-soft);
    border: 1px solid rgba(45, 90, 74, 0.14);
    transition: background 0.15s, border-color 0.15s, transform 0.15s;
}

.up-ac-link-btn .layui-icon {
    font-size: 14px;
    line-height: 1;
}

.up-ac-link-btn:hover {
    background: rgba(45, 90, 74, 0.14);
    border-color: rgba(45, 90, 74, 0.22);
    transform: translateY(-1px);
}

.up-ac-link-btn.is-primary {
    color: #fff;
    background: linear-gradient(180deg, var(--ps-accent) 0%, var(--ps-accent-hover) 100%);
    border-color: transparent;
    box-shadow: 0 6px 16px rgba(45, 90, 74, 0.2);
}

.up-ac-link-btn.is-primary:hover {
    background: linear-gradient(180deg, var(--ps-accent-hover) 0%, #1a352c 100%);
}

.up-ac-empty-note,
.up-ac-security-note {
    margin: 0;
    font-size: 13px;
    line-height: 1.55;
    color: var(--ps-ink-muted);
}

.up-ac-panel--security {
    grid-column: 1 / -1;
}

.up-ac-security-act {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px 20px;
    padding: 14px 16px;
    border-radius: var(--ps-radius-sm);
    background: var(--ps-surface-2);
    border: 1px dashed rgba(30, 27, 22, 0.08);
}

.up-ac-security-act-main {
    flex: 1;
    min-width: 0;
}

.up-ac-security-act-label {
    display: block;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--ps-ink);
}

.up-ac-security-act-hint {
    margin: 4px 0 0;
    font-size: 12px;
    line-height: 1.45;
    color: var(--ps-ink-muted);
}

.up-ac-security-btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-height: 38px;
    padding: 0 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    color: var(--ps-accent);
    background: #fff;
    border: 1px solid rgba(45, 90, 74, 0.16);
    box-shadow: 0 1px 2px rgba(45, 90, 74, 0.05);
    transition: background 0.15s var(--ps-ease), border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}

.up-ac-security-btn .layui-icon {
    font-size: 13px;
    line-height: 1;
    opacity: 0.82;
    transition: transform 0.15s var(--ps-ease);
}

.up-ac-security-btn:hover {
    background: var(--ps-accent-soft);
    border-color: rgba(45, 90, 74, 0.26);
    box-shadow: 0 4px 12px rgba(45, 90, 74, 0.08);
    transform: translateY(-1px);
}

.up-ac-security-btn:hover .layui-icon {
    transform: translateX(2px);
}

.up-ac-security-btn:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(45, 90, 74, 0.05);
}

.up-ac-security-btn:focus-visible {
    outline: 2px solid var(--ps-accent);
    outline-offset: 2px;
}

/* ?? Password change ?? */

.up-pw-vault {
    position: relative;
    padding: 20px 24px 18px;
    margin-bottom: 14px;
    border-radius: var(--ps-radius-xl);
    overflow: hidden;
    color: var(--ps-ink);
    background:
        radial-gradient(ellipse 72% 92% at 0% 0%, rgba(61, 90, 128, 0.1) 0%, transparent 58%),
        radial-gradient(ellipse 58% 72% at 100% 100%, rgba(45, 90, 74, 0.09) 0%, transparent 55%),
        linear-gradient(158deg, #FFFCF8 0%, var(--ps-surface) 50%, var(--ps-surface-2) 100%);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
}

.up-pw-vault-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.up-pw-vault-bg::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -18%;
    width: 58%;
    height: 200%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.14), transparent);
    animation: up-gf-vault-sweep 9s ease-in-out infinite;
}

.up-pw-vault-sigil {
    position: absolute;
    top: -28px;
    right: -16px;
    width: min(200px, 38vw);
    height: min(200px, 38vw);
    opacity: 0.42;
}

.up-pw-vault-sigil-aura {
    position: absolute;
    inset: -10%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(61, 90, 128, 0.2) 0%, rgba(45, 90, 74, 0.1) 48%, transparent 72%);
    animation: up-lt-aura-breathe 4.4s ease-in-out infinite;
}

.up-pw-vault-sigil-ring {
    position: absolute;
    inset: 8%;
    border-radius: 50%;
    border: 1px dashed rgba(61, 90, 128, 0.22);
    animation: up-gf-seal-ring-spin 48s linear infinite;
}

.up-pw-vault-sigil-face {
    position: absolute;
    inset: 22%;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-size: clamp(28px, 5vw, 38px);
    color: var(--ps-sapphire);
    background: linear-gradient(160deg, rgba(255, 252, 248, 0.96) 0%, rgba(243, 238, 230, 0.88) 100%);
    border: 1px solid rgba(61, 90, 128, 0.18);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.92),
        0 10px 28px rgba(61, 90, 128, 0.12);
}

.up-pw-vault-inner {
    position: relative;
    z-index: 1;
    max-width: none;
}

.is-password .up-pw-vault .ps-kicker {
    color: var(--ps-sapphire);
}

.up-pw-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 12px;
    padding: 4px 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--ps-ink-muted);
    transition: color 0.15s var(--ps-ease);
}

.up-pw-back .layui-icon {
    font-size: 14px;
    line-height: 1;
}

.up-pw-back:hover {
    color: var(--ps-accent);
}

.up-pw-vault-title {
    margin: 0;
    font-size: clamp(22px, 3.2vw, 28px);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.2;
    color: var(--ps-ink);
}

.up-pw-vault-lead {
    margin: 8px 0 0;
    max-width: 56ch;
    font-size: 13px;
    line-height: 1.55;
    color: var(--ps-ink-muted);
}

.up-pw-sheet {
    padding: 18px 20px 20px;
    border-radius: var(--ps-radius);
    background: var(--ps-surface);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
}

.up-pw-form-grid {
    display: grid;
    grid-template-columns: minmax(0, 248px) minmax(0, 1fr);
    gap: 22px 36px;
    align-items: start;
}

.up-pw-aside {
    padding: 14px 16px;
    border-radius: var(--ps-radius-sm);
    background: var(--ps-surface-2);
    border: 1px dashed rgba(30, 27, 22, 0.08);
}

.up-pw-aside-title {
    margin: 0 0 10px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ps-ink-faint);
}

.up-pw-tips {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.up-pw-tips li {
    position: relative;
    padding-left: 14px;
    font-size: 12px;
    line-height: 1.55;
    color: var(--ps-ink-muted);
}

.up-pw-tips li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 7px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--ps-accent);
    opacity: 0.55;
}

.up-pw-main {
    min-width: 0;
}

.up-pw-rows {
    display: flex;
    flex-direction: column;
}

.up-pw-row {
    display: grid;
    grid-template-columns: 92px minmax(0, 520px);
    gap: 16px 20px;
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px solid var(--ps-border);
    cursor: text;
}

.up-pw-row:first-child {
    padding-top: 0;
}

.up-pw-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.up-pw-row-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--ps-ink);
    letter-spacing: -0.01em;
}

.up-pw-row-field {
    min-width: 0;
}

.up-pw-row-field input {
    width: 100%;
    min-height: var(--ps-touch);
    padding: 0 14px;
    border-radius: var(--ps-radius-sm);
    font-size: 14px;
    color: var(--ps-ink);
    background: #fff;
    border: 1px solid var(--ps-border-strong);
    transition: border-color 0.15s, box-shadow 0.15s;
}

.up-pw-row-field input::placeholder {
    color: var(--ps-ink-faint);
    font-size: 13px;
}

/* ??????????? */
.up-pw-row-field input:-webkit-autofill,
.up-pw-row-field input:-webkit-autofill:hover,
.up-pw-row-field input:-webkit-autofill:focus,
.up-pw-row-field input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 30px rgba(42, 39, 34, 0.9) inset !important;
    -webkit-text-fill-color: var(--ps-ink) !important;
    caret-color: var(--ps-ink);
    border-radius: var(--ps-radius-sm);
    transition: background-color 5000s ease-in-out 0s;
}
[data-theme="light"] .up-pw-row-field input:-webkit-autofill,
[data-theme="light"] .up-pw-row-field input:-webkit-autofill:hover,
[data-theme="light"] .up-pw-row-field input:-webkit-autofill:focus,
[data-theme="light"] .up-pw-row-field input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 30px #fff inset !important;
    -webkit-text-fill-color: var(--ps-ink) !important;
}

.up-pw-row-field input:hover {
    border-color: rgba(45, 90, 74, 0.18);
}

.up-pw-row-field input:focus {
    outline: none;
    border-color: var(--ps-accent);
    box-shadow: 0 0 0 3px var(--ps-accent-soft);
}

.up-pw-foot {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 16px;
    margin-left: 112px;
}

.up-pw-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 40px;
    padding: 0 20px;
    border: none;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    background: var(--ps-accent);
    box-shadow: 0 4px 14px rgba(45, 90, 74, 0.18);
    transition: background 0.15s var(--ps-ease), box-shadow 0.15s, transform 0.15s;
}

.up-pw-submit .layui-icon {
    font-size: 13px;
    line-height: 1;
    transition: transform 0.15s var(--ps-ease);
}

.up-pw-submit:hover {
    background: var(--ps-accent-hover);
    box-shadow: 0 6px 18px rgba(45, 90, 74, 0.22);
    transform: translateY(-1px);
}

.up-pw-submit:hover .layui-icon {
    transform: translateX(2px);
}

.up-pw-submit:active {
    transform: translateY(0);
    box-shadow: 0 2px 8px rgba(45, 90, 74, 0.16);
}

.up-pw-submit:focus-visible {
    outline: 2px solid var(--ps-accent);
    outline-offset: 2px;
}

.up-pw-submit:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

@media (max-width: 720px) {
    .up-pw-vault {
        padding: 18px 16px 16px;
    }

    .up-pw-vault-sigil {
        top: auto;
        bottom: -36px;
        right: -24px;
        width: min(160px, 42vw);
        height: min(160px, 42vw);
        opacity: 0.24;
    }

    .up-pw-form-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .up-pw-row {
        grid-template-columns: 1fr;
        gap: 7px;
        align-items: stretch;
    }

    .up-pw-foot {
        margin-left: 0;
        padding-top: 14px;
    }

    .up-pw-submit {
    width: 100%;
        min-height: var(--ps-touch);
    }
}

@media (prefers-reduced-motion: reduce) {
    .up-pw-vault-bg::after,
    .up-pw-vault-sigil-aura,
    .up-pw-vault-sigil-ring {
        animation: none;
    }
}

.up-ac-ledger {
    padding: 18px;
    border-radius: var(--ps-radius);
    background: var(--ps-surface);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
}

.up-ac-ledger-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px 16px;
    margin-bottom: 0;
}

.up-ac-ledger.is-collapsed .up-ac-ledger-head {
    margin-bottom: 0;
}

.up-ac-ledger-toggle {
    flex: 1 1 240px;
    min-width: 0;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 0;
    margin: 0;
    border: none;
    background: none;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.up-ac-ledger-toggle:focus-visible {
    outline: 2px solid var(--ps-accent);
    outline-offset: 4px;
    border-radius: var(--ps-radius-xs);
}

.up-ac-ledger-toggle-icon {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    margin-top: 1px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    color: var(--ps-ink-muted);
    background: var(--ps-surface-2);
    border: 1px solid var(--ps-border);
    transition: transform 0.22s var(--ps-ease), background 0.15s, color 0.15s;
}

.up-ac-ledger-toggle-icon .layui-icon {
    font-size: 14px;
    line-height: 1;
    transition: transform 0.22s var(--ps-ease);
}

.up-ac-ledger.is-collapsed .up-ac-ledger-toggle-icon .layui-icon {
    transform: rotate(-90deg);
}

.up-ac-ledger-toggle:hover .up-ac-ledger-toggle-icon {
    color: var(--ps-accent);
    background: var(--ps-accent-soft);
    border-color: rgba(45, 90, 74, 0.14);
}

.up-ac-ledger-toggle-copy {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.up-ac-ledger-toggle-title {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--ps-ink);
}

.up-ac-ledger-toggle-desc {
    font-size: 12px;
    line-height: 1.45;
    color: var(--ps-ink-muted);
}

.up-ac-ledger.is-collapsed .up-ac-ledger-toggle-desc {
    display: none;
}

.up-ac-ledger-head-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.up-ac-ledger-count {
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--ps-ink-muted);
    background: var(--ps-surface-2);
    border: 1px solid var(--ps-border);
    display: inline-flex;
    align-items: center;
}

.up-ac-ledger-body {
    margin-top: 14px;
}

.up-ac-ledger.is-collapsed .up-ac-ledger-body {
    display: none;
}

.up-ac-ledger-head h2 {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.up-ac-ledger-head p {
    margin: 4px 0 0;
    font-size: 12px;
    line-height: 1.45;
    color: var(--ps-ink-muted);
}

.up-ac-ledger-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.up-ac-ledger-sum {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    border: 1px solid var(--ps-border);
    background: var(--ps-surface-2);
}

.up-ac-ledger-sum.is-gold {
    color: var(--ps-gold);
    border-color: rgba(154, 123, 47, 0.16);
    background: var(--ps-gold-soft);
}

.up-ac-ledger-sum.is-diamond {
    color: var(--ps-sapphire);
    border-color: rgba(61, 90, 128, 0.16);
    background: var(--ps-sapphire-soft);
}

.up-ac-ledger-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 14px;
}

.up-ac-ledger-filter {
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    color: var(--ps-ink-muted);
    background: var(--ps-surface-2);
    border: 1px solid transparent;
    display: inline-flex;
    align-items: center;
    transition: color 0.15s, background 0.15s, border-color 0.15s;
}

.up-ac-ledger-filter:hover {
    color: var(--ps-ink);
    border-color: var(--ps-border);
}

.up-ac-ledger-filter.is-active {
    color: var(--ps-accent);
    background: var(--ps-accent-soft);
    border-color: rgba(45, 90, 74, 0.16);
}

.up-ac-ledger-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.up-ac-ledger-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px 16px;
    align-items: center;
    padding: 12px 14px;
    border-radius: var(--ps-radius-sm);
    background: linear-gradient(180deg, #fff 0%, var(--ps-surface-2) 100%);
    border: 1px solid rgba(30, 27, 22, 0.06);
}

.up-ac-ledger-row-main {
    min-width: 0;
}

.up-ac-ledger-row-title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.up-ac-ledger-source {
    flex-shrink: 0;
    min-height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: var(--ps-ink-muted);
    background: rgba(255, 252, 248, 0.9);
    border: 1px solid var(--ps-border);
}

.up-ac-ledger-row-title strong {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--ps-ink);
}

.up-ac-ledger-row-detail {
    margin: 4px 0 0;
    font-size: 12px;
    line-height: 1.45;
    color: var(--ps-ink-muted);
}

.up-ac-ledger-time {
    display: block;
    margin-top: 6px;
    font-size: 11px;
    color: var(--ps-ink-faint);
    font-variant-numeric: tabular-nums;
}

.up-ac-ledger-row-amounts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.up-ac-ledger-amt {
    min-width: 88px;
    padding: 8px 10px;
    border-radius: var(--ps-radius-xs);
    background: rgba(255, 252, 248, 0.85);
    border: 1px solid var(--ps-border);
    text-align: right;
}

.up-ac-ledger-amt > span {
    display: block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--ps-ink-faint);
}

.up-ac-ledger-amt > strong {
    display: block;
    margin-top: 2px;
    font-size: 13px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1.3;
}

.up-ac-ledger-amt > strong em {
    font-style: normal;
    margin-left: 4px;
}

.up-ac-ledger-amt > strong em:first-child {
    margin-left: 0;
}

.up-ac-ledger-amt > strong em.is-in {
    color: var(--ps-success);
}

.up-ac-ledger-amt > strong em.is-out {
    color: var(--ps-danger);
}

.up-ac-ledger-amt > small {
    display: block;
    margin-top: 4px;
    font-size: 10px;
    color: var(--ps-ink-faint);
    font-variant-numeric: tabular-nums;
}

.up-ac-ledger-amt.is-gold > span {
    color: var(--ps-gold);
}

.up-ac-ledger-amt.is-diamond > span {
    color: var(--ps-sapphire);
}

.up-ac-ledger-empty {
    padding: 28px 16px;
    text-align: center;
    border-radius: var(--ps-radius-sm);
    background: var(--ps-surface-2);
    border: 1px dashed rgba(30, 27, 22, 0.1);
}

.up-ac-ledger-empty p {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--ps-ink);
}

.up-ac-ledger-empty span {
    display: block;
    margin-top: 6px;
    font-size: 12px;
    color: var(--ps-ink-muted);
}

.up-ac-ledger-pager {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 14px;
    padding-top: 4px;
}

.up-ac-ledger-page {
    min-height: 36px;
    padding: 0 14px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    color: var(--ps-accent);
    background: var(--ps-accent-soft);
    border: 1px solid rgba(45, 90, 74, 0.12);
    display: inline-flex;
    align-items: center;
}

.up-ac-ledger-page.is-disabled {
    opacity: 0.42;
    color: var(--ps-ink-muted);
    background: var(--ps-surface-2);
    border-color: var(--ps-border);
}

.up-ac-ledger-page-status {
    min-width: 56px;
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--ps-ink-muted);
}

/* ?? Vault hero ?? */

.up-lt-vault {
    position: relative;
    padding: 22px 24px 20px;
    margin-bottom: 16px;
    border-radius: var(--ps-radius-xl);
    overflow: hidden;
    background:
        radial-gradient(ellipse 70% 90% at 0% 0%, rgba(45, 90, 74, 0.08) 0%, transparent 58%),
        radial-gradient(ellipse 55% 70% at 100% 100%, rgba(154, 123, 47, 0.1) 0%, transparent 55%),
        linear-gradient(158deg, #FFFCF8 0%, var(--ps-surface) 50%, var(--ps-surface-2) 100%);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
}

.up-lt-vault-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.up-lt-vault-bg::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -18%;
    width: 58%;
    height: 200%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.14), transparent);
    animation: up-gf-vault-sweep 9s ease-in-out infinite;
    pointer-events: none;
}

.up-lt-vault-wheel {
    position: absolute;
    top: 50%;
    right: -40px;
    width: min(280px, 52vw);
    height: min(280px, 52vw);
    opacity: 0.34;
    transform: translateY(-46%);
}

.up-lt-vault-wheel-pin {
    display: none;
}

.up-lt-vault-wheel-aura {
    position: absolute;
    inset: -12%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(196, 162, 78, 0.2) 0%, rgba(45, 90, 74, 0.08) 45%, transparent 70%);
    animation: up-lt-aura-breathe 4.2s ease-in-out infinite;
}

.up-lt-vault-wheel-rim {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: linear-gradient(165deg, rgba(255, 252, 248, 0.5) 0%, rgba(230, 222, 210, 0.35) 100%);
    box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.6), 0 8px 28px rgba(30, 27, 22, 0.08);
}

.up-lt-vault-wheel-rim-chase {
    position: absolute;
    inset: -3px;
    border-radius: 50%;
    background: conic-gradient(from 0deg, #C4A24E, rgba(45, 90, 74, 0.5), #E8D48A, rgba(196, 162, 78, 0.3), #C4A24E);
    -webkit-mask: radial-gradient(circle, transparent 62%, #000 63%, #000 68%, transparent 69%);
    mask: radial-gradient(circle, transparent 62%, #000 63%, #000 68%, transparent 69%);
    animation: up-lt-rim-chase 3s linear infinite;
}

.up-lt-vault-wheel-disk {
    position: absolute;
    inset: 10%;
    border-radius: 50%;
    animation: up-lt-spin 11s linear infinite;
}

.up-lt-vault-wheel-face {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid rgba(154, 123, 47, 0.32);
    background: repeating-conic-gradient(
        from -22.5deg,
        rgba(154, 123, 47, 0.22) 0deg 22.5deg,
        rgba(45, 90, 74, 0.09) 22.5deg 45deg
    );
    box-shadow: inset 0 0 0 1px rgba(255, 252, 248, 0.4);
}

.up-lt-vault-wheel-sweep {
    position: absolute;
    inset: -25%;
    border-radius: 50%;
    background: conic-gradient(from 210deg, transparent 0deg, rgba(255, 255, 255, 0.42) 18deg, transparent 36deg);
    animation: up-lt-sweep 4.5s linear infinite;
    mix-blend-mode: soft-light;
}

.up-lt-vault-wheel-beads {
    position: absolute;
    inset: 2%;
    animation: up-lt-bead-orbit 14s linear infinite reverse;
    pointer-events: none;
}

.up-lt-vault-wheel-beads i {
    position: absolute;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 25%, #FFF6D6 0%, #C4A24E 100%);
    box-shadow: 0 0 8px rgba(196, 162, 78, 0.55);
}

.up-lt-vault-wheel-beads i:nth-child(1) { top: 0; left: 50%; margin-left: -3px; animation: up-lt-bead-twinkle 2.4s ease-in-out infinite; }
.up-lt-vault-wheel-beads i:nth-child(2) { top: 25%; right: 6%; animation: up-lt-bead-twinkle 2.8s ease-in-out infinite 0.3s; }
.up-lt-vault-wheel-beads i:nth-child(3) { bottom: 25%; right: 6%; animation: up-lt-bead-twinkle 2.6s ease-in-out infinite 0.6s; }
.up-lt-vault-wheel-beads i:nth-child(4) { bottom: 0; left: 50%; margin-left: -3px; animation: up-lt-bead-twinkle 2.5s ease-in-out infinite 0.9s; }
.up-lt-vault-wheel-beads i:nth-child(5) { bottom: 25%; left: 6%; animation: up-lt-bead-twinkle 2.7s ease-in-out infinite 1.2s; }
.up-lt-vault-wheel-beads i:nth-child(6) { top: 25%; left: 6%; animation: up-lt-bead-twinkle 2.9s ease-in-out infinite 1.5s; }

.up-lt-vault-rays {
    position: absolute;
    top: 50%;
    right: -58px;
    width: min(340px, 58vw);
    height: min(340px, 58vw);
    border-radius: 50%;
    transform: translateY(-46%);
    background: repeating-conic-gradient(
        from 0deg,
        rgba(196, 162, 78, 0.07) 0deg 8deg,
        transparent 8deg 30deg
    );
    animation: up-lt-rays-drift 18s ease-in-out infinite;
    pointer-events: none;
}

.up-lt-vault-spark {
    position: absolute;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--ps-gold);
    box-shadow: 0 0 10px rgba(154, 123, 47, 0.45);
    animation: up-gf-spark-drift 5s ease-in-out infinite;
    pointer-events: none;
}

.up-lt-vault-spark--a { top: 18%; left: 12%; animation-delay: 0s; }
.up-lt-vault-spark--b { top: 62%; left: 78%; animation-delay: -1.2s; }
.up-lt-vault-spark--c { top: 28%; left: 55%; animation-delay: -2.4s; width: 3px; height: 3px; }
.up-lt-vault-spark--d { top: 72%; left: 24%; animation-delay: -3.1s; width: 5px; height: 5px; opacity: 0.35; }
.up-lt-vault-spark--e { top: 42%; left: 88%; animation-delay: -1.8s; width: 3px; height: 3px; background: rgba(45, 90, 74, 0.85); box-shadow: 0 0 8px rgba(45, 90, 74, 0.35); }
.up-lt-vault-spark--f { top: 8%; left: 68%; animation-delay: -4.2s; width: 4px; height: 4px; }

.up-lt-vault-dust {
    position: absolute;
    inset: 0;
    opacity: 0.45;
    background-image:
        radial-gradient(circle at 14% 22%, rgba(154, 123, 47, 0.14) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 82% 18%, rgba(45, 90, 74, 0.12) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 56% 68%, rgba(154, 123, 47, 0.1) 0 1px, transparent 2px),
        radial-gradient(circle at 28% 78%, rgba(45, 90, 74, 0.08) 0 1px, transparent 2px),
        radial-gradient(circle at 8% 46%, rgba(196, 162, 78, 0.11) 0 1px, transparent 2px),
        radial-gradient(circle at 92% 52%, rgba(45, 90, 74, 0.1) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 48% 32%, rgba(154, 123, 47, 0.09) 0 1px, transparent 2px);
    animation: up-lt-dust-float 7s ease-in-out infinite alternate;
}

.up-lt-vault-inner {
    position: relative;
    z-index: 1;
}

.up-lt-vault .ps-kicker {
    margin: 0 0 8px;
    color: var(--ps-gold);
}

.up-lt-vault-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px 24px;
}

.up-lt-vault-title-wrap {
    flex: 1 1 220px;
    min-width: 0;
}

.up-lt-vault-title {
    margin: 0;
    font-size: clamp(28px, 5.5vw, 36px);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.05;
    text-wrap: balance;
    color: var(--ps-ink);
}

.up-lt-vault-lead {
    margin: 12px 0 0;
    max-width: 42ch;
    font-size: 13px;
    line-height: 1.55;
    color: var(--ps-ink-muted);
}

.up-lt-vault-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.up-lt-metric {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 72px;
    padding: 12px 14px;
    border-radius: var(--ps-radius-sm);
    background: rgba(255, 252, 248, 0.78);
    border: 1px solid var(--ps-border);
}

.up-lt-metric strong {
    font-size: 22px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.04em;
    line-height: 1;
    color: var(--ps-ink);
}

.up-lt-metric span {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--ps-ink-faint);
}

.up-lt-metric.is-live {
    border-color: rgba(45, 90, 74, 0.2);
    animation: up-lt-metric-live 3s ease-in-out infinite;
}

.up-lt-metric.is-live strong {
    color: var(--ps-accent);
}

.up-lt-arena {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* ?? Ticket + wheel ?? */

.up-lt-ticket {
    --lt-ring: rgba(45, 90, 74, 0.4);
    --lt-ring-soft: rgba(45, 90, 74, 0.1);
    --lt-glow: rgba(45, 90, 74, 0.22);
    --lt-face-a: rgba(45, 90, 74, 0.26);
    --lt-face-b: rgba(45, 90, 74, 0.09);
    --lt-pin: #C4A24E;
    --lt-hub-from: #FFFCF8;
    --lt-hub-to: var(--ps-surface-2);
    --lt-btn-from: var(--ps-accent);
    --lt-btn-to: var(--ps-accent-hover);
    position: relative;
    display: grid;
    grid-template-columns: 108px minmax(0, 1fr) auto;
    grid-template-areas: "compass body foot";
    align-items: stretch;
    border-radius: var(--ps-radius-xl);
    background: var(--ps-surface);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
    overflow: hidden;
    transition: border-color 0.25s, box-shadow 0.25s;
}

.up-lt-ticket.is-tier-bronze {
    --lt-ring: rgba(184, 115, 51, 0.48);
    --lt-ring-soft: rgba(184, 115, 51, 0.12);
    --lt-glow: rgba(184, 115, 51, 0.24);
    --lt-face-a: rgba(184, 115, 51, 0.3);
    --lt-face-b: rgba(184, 115, 51, 0.1);
    --lt-pin: #B87333;
    --lt-btn-from: #A8652A;
    --lt-btn-to: #8B4E1F;
}

.up-lt-ticket.is-tier-silver {
    --lt-ring: rgba(107, 140, 174, 0.48);
    --lt-ring-soft: rgba(107, 140, 174, 0.12);
    --lt-glow: rgba(107, 140, 174, 0.22);
    --lt-face-a: rgba(107, 140, 174, 0.28);
    --lt-face-b: rgba(107, 140, 174, 0.09);
    --lt-pin: #6B8CAE;
    --lt-btn-from: #5A7898;
    --lt-btn-to: #465F78;
}

.up-lt-ticket.is-tier-gold {
    --lt-ring: rgba(196, 162, 78, 0.52);
    --lt-ring-soft: rgba(196, 162, 78, 0.14);
    --lt-glow: rgba(196, 162, 78, 0.26);
    --lt-face-a: rgba(196, 162, 78, 0.32);
    --lt-face-b: rgba(196, 162, 78, 0.11);
    --lt-pin: #C4A24E;
    --lt-btn-from: #9A7B2F;
    --lt-btn-to: #7A6020;
}

.up-lt-ticket.is-ready {
    border-color: rgba(45, 90, 74, 0.22);
    box-shadow: 0 10px 28px rgba(45, 90, 74, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.up-lt-ticket.is-tier-bronze.is-ready { border-color: rgba(184, 115, 51, 0.24); }
.up-lt-ticket.is-tier-silver.is-ready { border-color: rgba(107, 140, 174, 0.24); }
.up-lt-ticket.is-tier-gold.is-ready { border-color: rgba(196, 162, 78, 0.28); }

.up-lt-ticket.is-locked {
    opacity: 0.92;
}

.up-lt-ticket.is-drawing {
    animation: up-lt-draw-flash 0.32s ease-in-out infinite;
}

.up-lt-ticket.is-drawing .up-lt-compass-disk {
    animation: up-lt-spin-fury 0.85s cubic-bezier(0.22, 0.85, 0.35, 1) infinite;
}

.up-lt-ticket.is-drawing .up-lt-compass-rim-chase {
    animation: up-lt-rim-chase 0.5s linear infinite;
}

.up-lt-ticket.is-drawing .up-lt-compass-beads {
    animation: up-lt-bead-orbit 0.65s linear infinite reverse;
}

.up-lt-ticket.is-drawing .up-lt-compass-pin {
    animation: up-lt-pin-rattle 0.14s ease-in-out infinite;
}

.up-lt-ticket.is-drawing .up-lt-compass-shock {
    animation: up-lt-shock-wave 0.6s ease-out infinite;
}

.up-lt-ticket.is-drawing .up-lt-compass-sweep {
    animation: up-lt-sweep 0.4s linear infinite;
}

.up-lt-ticket.is-drawing .up-lt-ticket-compass-col {
    background: linear-gradient(180deg, rgba(255, 252, 248, 0.92) 0%, var(--lt-glow) 100%);
}

.up-lt-ticket.is-drawing .up-lt-ticket-preview-disk {
    animation: up-lt-spin 0.35s linear infinite;
}

.up-lt-ticket-compass-col {
    grid-area: compass;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 10px;
    border-right: 1px solid rgba(30, 27, 22, 0.06);
    background: linear-gradient(180deg, rgba(255, 252, 248, 0.65) 0%, var(--lt-ring-soft) 100%);
}

.up-lt-compass {
    position: relative;
    width: 76px;
    height: 76px;
    flex-shrink: 0;
    isolation: isolate;
}

.up-lt-compass-aura {
    position: absolute;
    inset: -12px;
    border-radius: 50%;
    background: radial-gradient(circle, var(--lt-glow) 0%, transparent 68%);
    opacity: 0;
    pointer-events: none;
}

.up-lt-ticket.is-ready .up-lt-compass-aura {
    opacity: 1;
    animation: up-lt-aura-breathe 2.8s ease-in-out infinite;
}

.up-lt-compass-rim {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: linear-gradient(168deg, rgba(255, 252, 248, 0.85) 0%, rgba(235, 228, 218, 0.55) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75), 0 4px 16px rgba(30, 27, 22, 0.1);
}

.up-lt-compass-rim-chase {
    position: absolute;
    inset: -2px;
    border-radius: 50%;
    background: conic-gradient(from 0deg, var(--lt-pin), transparent 40deg, var(--lt-ring) 80deg, transparent 120deg, var(--lt-pin) 160deg, transparent 200deg, var(--lt-ring) 240deg, transparent 280deg, var(--lt-pin) 320deg);
    -webkit-mask: radial-gradient(circle, transparent 66%, #000 67%, #000 72%, transparent 73%);
    mask: radial-gradient(circle, transparent 66%, #000 67%, #000 72%, transparent 73%);
    opacity: 0;
}

.up-lt-ticket.is-ready .up-lt-compass-rim-chase {
    opacity: 1;
    animation: up-lt-rim-chase 2.8s linear infinite;
}

.up-lt-compass-pin {
    position: absolute;
    top: -1px;
    left: 50%;
    z-index: 6;
    width: 14px;
    height: 18px;
    transform: translateX(-50%);
    pointer-events: none;
}

.up-lt-compass-pin-cap {
    position: absolute;
    top: 0;
    left: 50%;
    width: 10px;
    height: 10px;
    margin-left: -5px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 28%, #FFF6D6 0%, var(--lt-pin) 58%, #8B6914 100%);
    box-shadow: 0 0 8px var(--lt-glow);
}

.up-lt-ticket.is-ready .up-lt-compass-pin-cap {
    animation: up-lt-pin-glow 2s ease-in-out infinite;
}

.up-lt-compass-pin-blade {
    position: absolute;
    top: 7px;
    left: 50%;
    width: 8px;
    height: 11px;
    margin-left: -4px;
    background: linear-gradient(180deg, #F0E0A0 0%, var(--lt-pin) 100%);
    clip-path: polygon(50% 100%, 0 0, 100% 0);
    filter: drop-shadow(0 1px 3px rgba(30, 27, 22, 0.22));
}

.up-lt-compass-disk {
    position: absolute;
    inset: 11%;
    border-radius: 50%;
    animation: up-lt-spin 16s linear infinite;
}

.up-lt-ticket.is-ready .up-lt-compass-disk {
    animation: up-lt-spin 4.8s linear infinite;
}

.up-lt-compass-face {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid var(--lt-ring);
    background: repeating-conic-gradient(
        from -22.5deg,
        var(--lt-face-a) 0deg 22.5deg,
        var(--lt-face-b) 22.5deg 45deg
    );
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.45);
}

.up-lt-compass-sweep {
    position: absolute;
    inset: -22%;
    border-radius: 50%;
    background: conic-gradient(from 200deg, transparent 0deg, rgba(255, 255, 255, 0.55) 16deg, transparent 32deg);
    mix-blend-mode: soft-light;
    opacity: 0;
}

.up-lt-ticket.is-ready .up-lt-compass-sweep,
.up-lt-ticket.is-drawing .up-lt-compass-sweep {
    opacity: 1;
    animation: up-lt-sweep 3s linear infinite;
}

.up-lt-compass-gems {
    position: absolute;
    inset: 4%;
    border-radius: 50%;
    background: repeating-conic-gradient(
        from 0deg,
        rgba(255, 252, 248, 0.95) 0deg 2deg,
        transparent 2deg 45deg
    );
    -webkit-mask: radial-gradient(circle, transparent 68%, #000 69%, #000 86%, transparent 87%);
    mask: radial-gradient(circle, transparent 68%, #000 69%, #000 86%, transparent 87%);
    pointer-events: none;
}

.up-lt-compass-beads {
    position: absolute;
    inset: 3%;
    pointer-events: none;
    opacity: 0;
}

.up-lt-ticket.is-ready .up-lt-compass-beads,
.up-lt-ticket.is-drawing .up-lt-compass-beads {
    opacity: 1;
    animation: up-lt-bead-orbit 7s linear infinite reverse;
}

.up-lt-compass-beads i {
    position: absolute;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 25%, #FFF6D6 0%, var(--lt-pin) 100%);
    box-shadow: 0 0 6px var(--lt-glow);
}

.up-lt-compass-beads i:nth-child(1) { top: 0; left: 50%; margin-left: -2.5px; animation: up-lt-bead-twinkle 2.2s ease-in-out infinite; }
.up-lt-compass-beads i:nth-child(2) { top: 26%; right: 4%; animation: up-lt-bead-twinkle 2.5s ease-in-out infinite 0.25s; }
.up-lt-compass-beads i:nth-child(3) { bottom: 26%; right: 4%; animation: up-lt-bead-twinkle 2.3s ease-in-out infinite 0.5s; }
.up-lt-compass-beads i:nth-child(4) { bottom: 0; left: 50%; margin-left: -2.5px; animation: up-lt-bead-twinkle 2.4s ease-in-out infinite 0.75s; }
.up-lt-compass-beads i:nth-child(5) { bottom: 26%; left: 4%; animation: up-lt-bead-twinkle 2.6s ease-in-out infinite 1s; }
.up-lt-compass-beads i:nth-child(6) { top: 26%; left: 4%; animation: up-lt-bead-twinkle 2.1s ease-in-out infinite 1.25s; }

.up-lt-compass-hub {
    position: absolute;
    inset: 32%;
    z-index: 3;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 14px;
    font-weight: 900;
    letter-spacing: 0.02em;
    color: var(--ps-ink);
    background: linear-gradient(168deg, var(--lt-hub-from) 0%, var(--lt-hub-to) 100%);
    border: 1.5px solid rgba(255, 255, 255, 0.92);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 2px 10px rgba(30, 27, 22, 0.12);
    pointer-events: none;
}

.up-lt-ticket.is-ready .up-lt-compass-hub {
    animation: up-lt-hub-pulse 2.4s ease-in-out infinite;
}

.up-lt-compass-shock {
    position: absolute;
    inset: -6px;
    border-radius: 50%;
    border: 2px solid var(--lt-pin);
    opacity: 0;
    pointer-events: none;
}

.up-lt-ticket-pull-tag {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ps-ink-faint);
}

.up-lt-ticket-body {
    grid-area: body;
    position: relative;
    z-index: 1;
    min-width: 0;
    padding: 16px 16px 16px 14px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
}

.up-lt-ticket-head {
    min-width: 0;
}

.up-lt-ticket-title {
    margin: 0;
    padding-right: 72px;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.25;
    color: var(--ps-ink);
}

.up-lt-ticket-state {
    position: absolute;
    top: 14px;
    right: 12px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 9px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--ps-ink-muted);
    background: var(--ps-surface-2);
    border: 1px solid var(--ps-border);
    pointer-events: none;
}

.up-lt-ticket-state.is-ready {
    padding-left: 18px;
    color: var(--ps-accent);
    background: var(--ps-accent-soft);
    border-color: rgba(45, 90, 74, 0.16);
    box-shadow: 0 0 14px rgba(45, 90, 74, 0.12);
}

.up-lt-ticket-state.is-ready::before {
    content: '';
    position: absolute;
    left: 7px;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -3px;
    border-radius: 50%;
    background: var(--ps-accent);
    box-shadow: 0 0 8px rgba(45, 90, 74, 0.55);
    animation: up-lt-state-dot 2s ease-in-out infinite;
}

.up-lt-ticket-state.is-locked {
    color: var(--ps-ink-faint);
}

.up-lt-ticket-desc {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--ps-ink-muted);
}

.up-lt-ticket-tags {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.up-lt-ticket-tags li {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: var(--ps-ink-muted);
    background: var(--ps-surface-2);
    border: 1px solid var(--ps-border);
}

.up-lt-ticket-tags li.is-cost {
    color: var(--ps-gold);
    background: var(--ps-gold-soft);
    border-color: rgba(154, 123, 47, 0.14);
}

.up-lt-ticket-tags li.is-online {
    color: var(--ps-accent);
    background: var(--ps-accent-soft);
    border-color: rgba(45, 90, 74, 0.12);
}

.up-lt-ticket-tags li.is-history strong {
    font-weight: 800;
    color: var(--ps-ink);
}

.up-lt-ticket-foot {
    grid-area: foot;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px 20px;
    border-left: 1px solid rgba(30, 27, 22, 0.06);
    min-width: 168px;
    background: linear-gradient(180deg, rgba(255, 252, 248, 0.55) 0%, var(--lt-ring-soft) 100%);
}

.up-lt-ticket-preview {
    position: relative;
    display: grid;
    place-items: center;
    width: 84px;
    height: 84px;
    padding: 0;
    border: none;
    background: none;
    cursor: pointer;
    color: var(--ps-ink-muted);
}

.up-lt-ticket-preview-wheel {
    position: absolute;
    inset: 0;
    border-radius: 50%;
}

.up-lt-ticket-preview-pin {
    position: absolute;
    top: 2px;
    left: 50%;
    z-index: 2;
    width: 8px;
    height: 10px;
    transform: translateX(-50%);
    pointer-events: none;
}

.up-lt-ticket-preview-pin::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    width: 6px;
    height: 6px;
    margin-left: -3px;
    border-radius: 50%;
    background: var(--lt-pin);
    box-shadow: 0 0 6px var(--lt-glow);
    animation: none;
}

.up-lt-ticket.is-ready .up-lt-ticket-preview-pin::before {
    animation: up-lt-pin-glow 2.2s ease-in-out infinite;
}

.up-lt-ticket-preview-pin::after {
    content: '';
    position: absolute;
    top: 5px;
    left: 50%;
    width: 6px;
    height: 6px;
    margin-left: -3px;
    background: var(--lt-pin);
    clip-path: polygon(50% 100%, 0 0, 100% 0);
}

.up-lt-ticket-preview-disk {
    position: absolute;
    inset: 8px;
    border-radius: 50%;
    border: 2px solid var(--lt-ring);
    background: repeating-conic-gradient(
        from -22.5deg,
        var(--lt-face-a) 0deg 22.5deg,
        var(--lt-face-b) 22.5deg 45deg
    );
    animation: up-lt-spin 14s linear infinite;
}

.up-lt-ticket.is-ready .up-lt-ticket-preview-disk {
    animation: up-lt-spin 6s linear infinite;
}

.up-lt-ticket-preview-sweep {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: conic-gradient(from 200deg, transparent 0deg, rgba(255, 255, 255, 0.45) 14deg, transparent 28deg);
    mix-blend-mode: soft-light;
    opacity: 0;
    pointer-events: none;
}

.up-lt-ticket.is-ready .up-lt-ticket-preview-sweep {
    opacity: 0.9;
    animation: up-lt-sweep 3.5s linear infinite;
}

.up-lt-ticket-preview-core {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 30% 25%, rgba(255, 255, 255, 0.95) 0%, transparent 42%),
        var(--ps-surface);
    border: 1px solid rgba(30, 27, 22, 0.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8), 0 4px 12px rgba(30, 27, 22, 0.08);
    transition: transform 0.2s var(--ps-ease), box-shadow 0.2s;
}

.up-lt-ticket-preview-core strong {
    font-size: 22px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.03em;
    line-height: 1;
    color: var(--ps-ink);
}

.up-lt-ticket-preview-core em {
    font-style: normal;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--ps-ink-faint);
}

.up-lt-ticket-preview:hover .up-lt-ticket-preview-core {
    transform: scale(1.04);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8), 0 6px 16px rgba(30, 27, 22, 0.12);
}

.up-lt-ticket-act {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    width: 100%;
}

.up-lt-ticket-hint {
    margin: 0;
    font-size: 11px;
    line-height: 1.45;
    text-align: center;
    color: var(--ps-ink-faint);
    overflow-wrap: break-word;
    word-break: break-word;
    max-width: 100%;
}

.up-lt-ticket-draw {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: 44px;
    padding: 0 18px;
    border: none;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #fff;
    background: linear-gradient(135deg, var(--lt-btn-from) 0%, var(--lt-btn-to) 100%);
    box-shadow: 0 10px 22px rgba(30, 27, 22, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.2);
    overflow: hidden;
    transition: transform 0.15s var(--ps-ease), box-shadow 0.15s;
}

.up-lt-ticket.is-ready .up-lt-ticket-draw:not(:disabled)::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, transparent 38%, rgba(255, 255, 255, 0.32) 50%, transparent 62%);
    animation: up-lt-draw-shimmer 2.6s ease-in-out infinite;
    pointer-events: none;
}

.up-lt-ticket.is-drawing .up-lt-ticket-draw::after {
    animation: up-lt-draw-shimmer 0.5s ease-in-out infinite;
}

.up-lt-ticket-draw-gem {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 25%, #FFF 0%, rgba(255, 255, 255, 0.75) 100%);
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}

.up-lt-ticket.is-ready .up-lt-ticket-draw-gem {
    animation: up-lt-draw-gem 2s ease-in-out infinite;
}

.up-lt-ticket-draw-label {
    position: relative;
    z-index: 1;
}

.up-lt-ticket.is-ready .up-lt-ticket-draw:not(:disabled):hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 26px rgba(30, 27, 22, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.up-lt-ticket-draw:active:not(:disabled) {
    transform: translateY(0);
}

.up-lt-ticket-draw:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    box-shadow: none;
}

/* ?? Result modal ?? */

.up-lt-result .ps-modal-panel {
    width: min(100%, 400px);
}

.up-lt-result-panel {
    overflow: hidden;
    background: linear-gradient(180deg, #FFFCF8 0%, var(--ps-surface) 100%);
}

.up-lt-result-hero {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 132px;
    padding: 24px 20px 16px;
    background:
        radial-gradient(ellipse 80% 70% at 50% 0%, rgba(196, 162, 78, 0.14) 0%, transparent 68%),
        linear-gradient(180deg, rgba(255, 252, 248, 0.95) 0%, transparent 100%);
}

.up-lt-result-fx {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.up-lt-result-spark {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 5px;
    height: 5px;
    margin: -2.5px 0 0 -2.5px;
    border-radius: 50%;
    background: #E8D48A;
    box-shadow: 0 0 10px rgba(196, 162, 78, 0.55);
    opacity: 0;
}

.up-lt-result.is-revealing .up-lt-result-spark {
    animation: up-lt-result-spark 0.9s ease-out both;
}

.up-lt-result-spark:nth-child(1) { animation-delay: 0.05s; --spark-x: -42px; --spark-y: -36px; }
.up-lt-result-spark:nth-child(2) { animation-delay: 0.12s; --spark-x: 38px; --spark-y: -32px; }
.up-lt-result-spark:nth-child(3) { animation-delay: 0.18s; --spark-x: -34px; --spark-y: 28px; }
.up-lt-result-spark:nth-child(4) { animation-delay: 0.24s; --spark-x: 36px; --spark-y: 30px; }
.up-lt-result-spark:nth-child(5) { animation-delay: 0.3s; --spark-x: 0px; --spark-y: -44px; }
.up-lt-result-spark:nth-child(6) { animation-delay: 0.36s; --spark-x: 0px; --spark-y: 40px; }

@keyframes up-lt-result-spark {
    0% { opacity: 0; transform: translate(0, 0) scale(0.4); }
    35% { opacity: 1; transform: translate(calc(var(--spark-x) * 0.55), calc(var(--spark-y) * 0.55)) scale(1); }
    100% { opacity: 0; transform: translate(var(--spark-x), var(--spark-y)) scale(0.5); }
}

.up-lt-result-reveal {
    position: relative;
    width: 88px;
    height: 88px;
    flex-shrink: 0;
}

.up-lt-result-pin {
    position: absolute;
    top: -2px;
    left: 50%;
    z-index: 4;
    width: 10px;
    height: 12px;
    transform: translateX(-50%);
    pointer-events: none;
}

.up-lt-result-pin::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    width: 8px;
    height: 8px;
    margin-left: -4px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 28%, #FFF6D6 0%, #C4A24E 100%);
    box-shadow: 0 0 8px rgba(196, 162, 78, 0.45);
}

.up-lt-result-pin::after {
    content: '';
    position: absolute;
    top: 6px;
    left: 50%;
    width: 7px;
    height: 7px;
    margin-left: -3.5px;
    background: #C4A24E;
    clip-path: polygon(50% 100%, 0 0, 100% 0);
}

.up-lt-result-disk {
    position: absolute;
    inset: 14%;
    border-radius: 50%;
    border: 2px solid rgba(154, 123, 47, 0.28);
    background: repeating-conic-gradient(
        from -22.5deg,
        rgba(154, 123, 47, 0.18) 0deg 22.5deg,
        rgba(45, 90, 74, 0.07) 22.5deg 45deg
    );
    z-index: 1;
}

.up-lt-result.is-open .up-lt-result-disk {
    animation: up-lt-spin 12s linear infinite;
}

.up-lt-result-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px dashed rgba(154, 123, 47, 0.35);
    pointer-events: none;
}

.up-lt-result-ring.is-inner {
    inset: 12%;
    border-style: solid;
    border-color: rgba(45, 90, 74, 0.2);
}

.up-lt-result.is-open .up-lt-result-ring {
    animation: up-lt-result-ring-spin 20s linear infinite;
}

.up-lt-result.is-open .up-lt-result-ring.is-inner {
    animation: up-lt-result-ring-spin 15s linear infinite reverse;
}

.up-lt-result.is-revealing .up-lt-result-disk {
    animation: up-lt-spin 0.7s cubic-bezier(0.2, 0.85, 0.35, 1) 2, up-lt-spin 12s linear infinite 1.4s;
}

.up-lt-result.is-revealing .up-lt-result-ring {
    animation: up-lt-result-ring-spin 1s cubic-bezier(0.22, 1, 0.36, 1) 1, up-lt-result-ring-spin 20s linear infinite 1s;
}

.up-lt-result.is-revealing .up-lt-result-ring.is-inner {
    animation: up-lt-result-ring-spin 0.8s linear reverse 1, up-lt-result-ring-spin 15s linear infinite reverse 0.8s;
}

.up-lt-result.is-open .up-lt-result-pin::before {
    animation: up-lt-result-pin-glow 2.6s ease-in-out infinite;
}

@keyframes up-lt-result-pin-glow {
    0%, 100% {
        box-shadow: 0 0 8px rgba(196, 162, 78, 0.45);
        transform: scale(1);
    }
    50% {
        box-shadow: 0 0 14px rgba(196, 162, 78, 0.62);
        transform: scale(1.06);
    }
}

.up-lt-result-core {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 3;
    width: 44px;
    height: 44px;
    margin: -22px 0 0 -22px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(168deg, #FFFCF8 0%, var(--ps-surface-2) 100%);
    border: 2px solid rgba(255, 255, 255, 0.92);
    box-shadow: 0 4px 16px rgba(30, 27, 22, 0.12);
    font-size: 20px;
    font-weight: 900;
    color: var(--ps-ink);
}

.up-lt-result.is-revealing .up-lt-result-core {
    animation: up-lt-result-burst 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.up-lt-result.is-open:not(.is-revealing) .up-lt-result-core {
    animation: up-lt-result-core-glow 3.2s ease-in-out infinite;
}

@keyframes up-lt-result-core-glow {
    0%, 100% { box-shadow: 0 4px 16px rgba(30, 27, 22, 0.12); }
    50% { box-shadow: 0 4px 22px rgba(196, 162, 78, 0.28); }
}

.up-lt-result-body {
    padding: 0 22px 22px;
}

.up-lt-result-title {
    margin: 0 0 6px;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -0.02em;
    text-align: center;
    color: var(--ps-ink);
}

.up-lt-result-name {
    margin: 0 0 14px;
    font-size: 13px;
    line-height: 1.45;
    text-align: center;
    color: var(--ps-ink-muted);
}

.up-lt-result-list {
    list-style: none;
    margin: 0 0 12px;
    padding: 0;
    max-height: min(48vh, 280px);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.up-lt-result-item {
    width: 100%;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-radius: var(--ps-radius-sm);
    background: var(--ps-surface-2);
    border: 1px solid var(--ps-border);
}

.up-lt-result-item-tag {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    color: var(--ps-ink-muted);
    background: var(--ps-surface);
    border: 1px solid var(--ps-border);
}

.up-lt-result-item.is-gold .up-lt-result-item-tag {
    color: var(--ps-gold);
    background: var(--ps-gold-soft);
}

.up-lt-result-item.is-diamond .up-lt-result-item-tag {
    color: var(--ps-sapphire);
    background: var(--ps-sapphire-soft);
}

.up-lt-result-item.is-item .up-lt-result-item-tag {
    color: var(--ps-accent);
    background: var(--ps-accent-soft);
}

.up-lt-result-item-name {
    font-size: 13px;
    font-weight: 700;
    color: var(--ps-ink);
    min-width: 0;
}

.up-lt-result-item-qty {
    font-size: 11px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
    color: var(--ps-gold);
    white-space: nowrap;
}

.up-lt-result-msg {
    margin: 0 0 16px;
    font-size: 12px;
    line-height: 1.5;
    text-align: center;
    color: var(--ps-ink-muted);
}

.up-lt-result-btn {
    width: 100%;
    min-height: var(--ps-touch);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(45, 90, 74, 0.18);
}

@media (prefers-reduced-motion: reduce) {
    .up-lt-vault-wheel-aura,
    .up-lt-vault-bg::after,
    .up-lt-vault-wheel-rim-chase,
    .up-lt-vault-wheel-disk,
    .up-lt-vault-wheel-sweep,
    .up-lt-vault-wheel-beads,
    .up-lt-vault-wheel-beads i,
    .up-lt-vault-rays,
    .up-lt-vault-spark,
    .up-lt-vault-dust,
    .up-lt-ticket .up-lt-compass-disk,
    .up-lt-ticket.is-ready .up-lt-compass-aura,
    .up-lt-ticket.is-ready .up-lt-compass-rim-chase,
    .up-lt-ticket.is-ready .up-lt-compass-sweep,
    .up-lt-ticket.is-ready .up-lt-compass-beads,
    .up-lt-ticket.is-ready .up-lt-compass-beads i,
    .up-lt-ticket.is-ready .up-lt-compass-pin-cap,
    .up-lt-ticket.is-ready .up-lt-compass-hub,
    .up-lt-ticket.is-ready .up-lt-ticket-preview-disk,
    .up-lt-ticket.is-ready .up-lt-ticket-preview-sweep,
    .up-lt-ticket.is-ready .up-lt-ticket-preview-pin::before,
    .up-lt-ticket.is-ready .up-lt-ticket-draw:not(:disabled)::after,
    .up-lt-ticket.is-ready .up-lt-ticket-draw-gem,
    .up-lt-ticket.is-drawing,
    .up-lt-ticket.is-drawing .up-lt-compass-shock,
    .up-lt-metric.is-live,
    .up-lt-ticket-state.is-ready::before,
    .up-lt-result.is-revealing .up-lt-result-ring,
    .up-lt-result.is-revealing .up-lt-result-disk,
    .up-lt-result.is-open .up-lt-result-ring,
    .up-lt-result.is-open .up-lt-result-disk,
    .up-lt-result.is-open .up-lt-result-pin::before,
    .up-lt-result.is-open .up-lt-result-core,
    .up-lt-result.is-revealing .up-lt-result-core,
    .up-lt-result.is-revealing .up-lt-result-spark,
    .up-lt-result-item {
        animation: none !important;
    }
}

@media screen and (max-width: 720px) {
    .is-lottery.ps-page,
    .is-giftpacks.ps-page,
    .is-activities.ps-page,
    .is-checkin.ps-page,
    .is-account.ps-page {
        overflow-x: clip;
        max-width: 100%;
    }

    .up-ac-vault {
        padding: 18px 16px 16px;
        margin-bottom: 14px;
    }

    .up-ac-vault-sigil {
        top: auto;
        bottom: -36px;
        right: -28px;
        width: min(180px, 46vw);
        height: min(180px, 46vw);
        opacity: 0.22;
    }

    .up-ac-band-metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .up-ac-vault-metrics {
    width: 100%;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .up-ac-stat {
        min-height: 64px;
        padding: 10px 8px;
    }

    .up-ac-stat strong {
        font-size: 18px;
    }

    .up-ac-layout {
        grid-template-columns: 1fr;
    }

    .up-ac-facts {
        grid-template-columns: 1fr;
    }

    .up-ac-security-act {
        flex-direction: column;
        align-items: stretch;
    }

    .up-ac-security-btn {
        width: 100%;
        min-height: var(--ps-touch);
    }

    .up-ac-ledger-row {
        grid-template-columns: 1fr;
    }

    .up-ac-ledger-row-amounts {
        justify-content: flex-start;
    }

    .up-ac-ledger-amt {
        flex: 1 1 calc(50% - 4px);
    min-width: 0;
}

    .up-daily-vault {
        padding: 18px 16px 16px;
        margin-bottom: 14px;
    }

    .up-daily-vault-sigil {
        top: auto;
        bottom: -36px;
        right: -28px;
        width: min(180px, 46vw);
        height: min(180px, 46vw);
        opacity: 0.22;
    }

    .up-act-vault {
        padding: 18px 16px 16px;
        margin-bottom: 14px;
    }

    .up-act-vault-hub {
        top: auto;
        bottom: -48px;
        right: -24px;
        width: min(220px, 54vw);
        height: min(220px, 54vw);
        opacity: 0.28;
    }

    .is-activities .up-gf-crate-foot {
        min-height: 0;
    }

    .up-lt-vault {
        padding: 18px 16px 16px;
        margin-bottom: 14px;
    }

    .up-gf-vault {
        padding: 18px 16px 16px;
        margin-bottom: 14px;
    }

    .up-gf-vault-chest {
        top: auto;
        bottom: -36px;
        right: -28px;
        width: min(180px, 46vw);
        height: min(180px, 46vw);
        opacity: 0.18;
    }

    .up-lt-vault-head {
    flex-direction: column;
    align-items: stretch;
        gap: 10px;
    }

    .up-lt-vault-title-wrap {
        flex: none;
    }

    .up-lt-vault-metrics {
        width: 100%;
    display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    }

    .up-lt-vault-lead {
        max-width: none;
        margin-top: 10px;
    }

    .up-lt-vault-wheel {
        top: auto;
        bottom: -48px;
        right: -24px;
        width: min(200px, 56vw);
        height: min(200px, 56vw);
        opacity: 0.22;
        transform: none;
    }

    .up-lt-vault-rays {
        display: none;
    }

    .up-lt-arena {
        gap: 12px;
        padding-bottom: max(6px, env(safe-area-inset-bottom));
    }

    .up-lt-ticket {
        grid-template-columns: 72px minmax(0, 1fr);
        grid-template-areas:
            "compass body"
            "foot foot";
    }

    .up-lt-ticket.is-ready:hover {
    transform: none;
}

    .up-lt-ticket-compass-col {
        padding: 12px 8px;
    }

    .up-lt-compass {
        width: 64px;
        height: 64px;
    }

    .up-lt-ticket-body {
        padding: 14px 14px 12px;
    display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "title state"
            "desc desc"
            "tags tags";
        gap: 6px 8px;
        align-content: start;
    }

    .up-lt-ticket-state {
        position: relative;
        top: auto;
        right: auto;
        grid-area: state;
        align-self: start;
        justify-self: end;
    margin: 0;
}

    .up-lt-ticket-head {
        grid-area: title;
    min-width: 0;
    }

    .up-lt-ticket-title {
        padding-right: 0;
        font-size: 16px;
    }

    .up-lt-ticket-desc {
        grid-area: desc;
    }

    .up-lt-ticket-tags {
        grid-area: tags;
    }

    .up-lt-ticket-foot {
        flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
        padding: 12px 14px 14px;
        border-left: none;
        border-top: 1px solid rgba(30, 27, 22, 0.06);
        min-width: 0;
    }

    .up-lt-ticket-preview {
        flex: 0 0 auto;
        width: auto;
        height: auto;
    display: inline-flex;
    align-items: center;
    }

    .up-lt-ticket-preview-wheel {
        display: none;
    }

    .up-lt-ticket-preview-core {
        width: auto;
        height: auto;
        min-height: 36px;
        flex-direction: row;
    gap: 6px;
        padding: 0 12px;
        border-radius: 999px;
    }

    .up-lt-ticket-preview-core strong {
        font-size: 15px;
    }

    .up-lt-ticket-preview-core em {
    font-size: 11px;
        letter-spacing: 0.02em;
    }

    .up-lt-ticket-act {
        flex: 1 1 140px;
    min-width: 0;
}

    .up-lt-ticket-draw {
    min-height: var(--ps-touch);
    }

    .up-gf-arena,
    .up-gf-grid {
    gap: 12px;
        padding-bottom: max(6px, env(safe-area-inset-bottom));
    }

    .up-gf-crate {
        --gf-icon-w: 72px;
        grid-template-columns: var(--gf-icon-w) minmax(0, 1fr);
        grid-template-areas:
            "seal body"
            "foot foot";
    }

    .up-gf-crate.is-ready:hover {
    transform: none;
}

    .up-gf-crate.is-ready .up-gf-crate-aura {
        opacity: 0.55;
    }

    .up-gf-crate-seal-col {
        padding: 12px 8px;
    }

    .up-gf-crate-seal {
        width: 64px;
        height: 64px;
    }

    .up-gf-crate-seal-core {
        width: 44px;
        height: 44px;
    }

    .up-gf-crate-seal-core .layui-icon {
        font-size: 20px;
    }

    .up-gf-crate-body {
        padding: 14px 14px 12px;
    display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "title state"
            "desc desc"
            "tags tags";
        gap: 6px 8px;
        align-content: start;
    }

    .up-gf-crate-state {
        position: relative;
        top: auto;
        right: auto;
        grid-area: state;
        align-self: start;
        justify-self: end;
    margin: 0;
    }

    .up-gf-crate-state.is-claimed {
        position: relative;
        top: auto;
        right: auto;
    transform: rotate(-12deg);
    }

    .up-gf-crate-head {
        grid-area: title;
        min-width: 0;
    }

    .up-gf-crate-title {
        padding-right: 0;
        font-size: 16px;
    }

    .up-gf-crate.is-done .up-gf-crate-title {
        padding-right: 0;
    }

    .up-gf-crate-desc,
    .up-act-crate-desc {
        grid-area: desc;
    }

    .up-gf-crate-tags {
        grid-area: tags;
    }

    .up-gf-crate-foot {
        flex-direction: row;
        flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
        gap: 10px;
        padding: 12px 14px 14px;
    min-width: 0;
        border-left: none;
        border-top: 1px solid rgba(30, 27, 22, 0.06);
    }

    .up-gf-loot-orb {
    flex: 0 0 auto;
        width: auto;
        height: auto;
        display: inline-flex;
    align-items: center;
    }

    .up-gf-loot-orb-ring {
        display: none;
    }

    .up-gf-loot-orb-core {
        flex-direction: row;
    align-items: center;
    gap: 6px;
        width: auto;
        height: auto;
        min-height: 36px;
    padding: 0 12px;
    border-radius: 999px;
        animation: none;
    }

    .up-gf-crate.is-ready .up-gf-loot-orb-core {
        animation: none;
    }

    .up-gf-loot-orb-core strong {
        font-size: 15px;
    }

    .up-gf-loot-orb-core em {
    font-size: 11px;
    letter-spacing: 0.02em;
    }

    .up-gf-crate-act {
        flex: 1 1 140px;
        min-width: 0;
    }

    .up-gf-claim-btn {
        min-height: var(--ps-touch);
    }
}

@media screen and (max-width: 480px) {
    .up-lt-vault-title {
        font-size: 26px;
    }

    .up-lt-metric {
        padding: 10px 6px;
    }

    .up-lt-metric strong {
        font-size: 18px;
    }

    .up-lt-metric span {
        font-size: 9px;
    }

    .up-lt-ticket-compass-col {
        padding: 10px 6px;
    }

    .up-lt-compass {
        width: 58px;
        height: 58px;
    }

    .up-lt-ticket-body {
        padding: 12px 12px 10px;
    }

    .up-lt-ticket-tags li {
        font-size: 10px;
    }

    .up-lt-ticket-foot {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        padding: 12px 14px calc(16px + env(safe-area-inset-bottom));
    }

    .up-lt-ticket-preview {
        width: 100%;
        justify-content: center;
    }

    .up-lt-ticket-preview-core {
        width: 100%;
        justify-content: center;
    }

    .up-lt-ticket-act {
        flex: none;
        width: 100%;
    }

    .up-lt-ticket-draw {
        width: 100%;
    }

    .up-gf-crate-seal-col {
        padding: 10px 6px;
    }

    .up-gf-crate-seal {
        width: 58px;
        height: 58px;
    }

    .up-gf-crate-seal-core {
        width: 40px;
        height: 40px;
    }

    .up-gf-crate-body {
        padding: 12px 12px 10px;
    }

    .up-gf-crate-tags li {
    font-size: 10px;
    }

    .up-gf-crate-foot {
    flex-direction: column;
        align-items: stretch;
        gap: 10px;
        padding: 12px 14px calc(16px + env(safe-area-inset-bottom));
    }

    .up-gf-loot-orb {
        width: 100%;
    justify-content: center;
    }

    .up-gf-loot-orb-core {
    width: 100%;
        justify-content: center;
    }

    .up-gf-crate-act {
        width: 100%;
        flex: none;
    }

    .up-gf-claim-btn {
        width: 100%;
    }
}

.up-gift-list {    display: flex;    flex-direction: column;    gap: 12px;}.up-gift-row {    display: grid;    grid-template-columns: minmax(0, 1fr) auto;    align-items: center;    gap: 16px 20px;    padding: 18px 20px;    border-radius: var(--ps-radius-xl);    background: var(--ps-surface);    border: 1px solid var(--ps-border);    box-shadow: var(--ps-shadow-sm);}.up-gift-row-main {    min-width: 0;}.up-gift-row.is-ready {    border-color: rgba(45, 90, 74, 0.2);    box-shadow:        0 10px 28px rgba(45, 90, 74, 0.08),        inset 0 1px 0 rgba(255, 255, 255, 0.65);}.up-gift-row-main h3 {    margin: 0 0 6px;    font-size: 17px;    font-weight: 800;    letter-spacing: -0.02em;    color: var(--ps-ink);}.up-gift-row-main p {    margin: 0 0 8px;    font-size: 13px;    line-height: 1.55;    color: var(--ps-ink-muted);}.up-gift-row-tags {    list-style: none;    margin: 0;    padding: 0;    display: flex;    flex-wrap: wrap;    gap: 6px;}.up-gift-row-tags li {    display: inline-flex;    align-items: center;    min-height: 24px;    padding: 0 8px;    border-radius: 999px;    font-size: 10px;    font-weight: 700;    letter-spacing: 0.03em;    color: var(--ps-ink-muted);    background: var(--ps-surface-2);    border: 1px solid var(--ps-border);}.up-gift-row-tags li.is-vip {    color: var(--ps-accent);    background: var(--ps-accent-soft);    border-color: rgba(45, 90, 74, 0.14);}.up-gift-row-rewards {    display: flex;    flex-wrap: wrap;    gap: 6px;    margin-top: 12px;    padding-top: 12px;    border-top: 1px solid rgba(30, 27, 22, 0.06);}.up-gift-row-rewards > span {    display: inline-flex;    align-items: center;    min-height: 28px;    padding: 0 10px;    border-radius: 8px;    font-size: 11px;    font-weight: 700;    line-height: 1;    color: var(--ps-ink-muted);    background: var(--ps-surface-2);    border: 1px solid var(--ps-border);}.up-gift-row-act {    display: flex;    flex-direction: column;    align-items: flex-end;    justify-content: center;    gap: 8px;    flex-shrink: 0;    min-width: 112px;}.up-gift-row-quota {    font-size: 11px;    font-weight: 600;    line-height: 1.45;    color: var(--ps-ink-faint);    text-align: right;    max-width: 160px;}.up-gift-claim-btn {    display: inline-flex;    align-items: center;    justify-content: center;    min-height: var(--ps-touch);    min-width: 112px;    padding: 0 20px;    border: none;    border-radius: 999px;    background: var(--ps-accent);    color: #fff;    font-weight: 700;    font-size: 13px;    letter-spacing: 0.02em;    box-shadow: 0 8px 18px rgba(45, 90, 74, 0.2);    transition:        background 0.15s var(--ps-ease),        transform 0.15s var(--ps-ease),        box-shadow 0.15s var(--ps-ease);}.up-gf-crate.is-ready .up-gf-claim-btn:not(:disabled):hover,.up-gp-item.is-ready .up-gp-claim-btn:not(:disabled):hover,
.up-gift-row.is-ready .up-gift-claim-btn:not(:disabled):hover {    background: var(--ps-accent-hover);    transform: translateY(-1px);}.up-gift-claim-btn:active:not(:disabled) {    transform: translateY(0);}.up-gift-claim-btn:disabled {    opacity: 0.45;    cursor: not-allowed;    box-shadow: none;    transform: none;}.is-giftpacks .ps-empty {    margin-top: 4px;}.ps-giftpack-reward-detail .ps-modal-panel {    width: min(100%, 440px);}.ps-giftpack-reward-emblem span {    font-size: 15px;    letter-spacing: 0.06em;}.ps-giftpack-reward-detail-panel.is-tier-claimable .ps-giftpack-reward-emblem {    background: var(--ps-gold);    box-shadow:        0 0 0 4px rgba(154, 123, 47, 0.12),        0 4px 14px rgba(154, 123, 47, 0.22);}.ps-giftpack-reward-detail-panel.is-tier-claimable .ps-giftpack-reward-emblem span {    color: #fff;}.ps-giftpack-reward-detail-panel.is-tier-claimed .ps-giftpack-reward-emblem {    background: #C8D2CC;}.ps-giftpack-reward-detail-panel.is-tier-claimed .ps-giftpack-reward-emblem span {    color: #5E6F66;}/* ?? Pass page ?? */.up-pass-hero {    padding: 22px 24px 20px;    border-radius: var(--ps-radius-xl);    background:        radial-gradient(ellipse 90% 80% at 100% 0%, rgba(154, 123, 47, 0.07) 0%, transparent 55%),        linear-gradient(165deg, #FFFCF8 0%, var(--ps-surface) 52%, var(--ps-surface-2) 100%);    border: 1px solid var(--ps-border);    box-shadow: var(--ps-shadow-sm);}[data-theme="dark"] .up-pass-hero {    background: var(--ps-surface);    border-color: rgba(228, 224, 218, 0.08);    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 8px 24px rgba(0, 0, 0, 0.15);}[data-theme="dark"] .up-pass-progress-card {    background: rgba(42, 39, 34, 0.72);    border-color: rgba(228, 224, 218, 0.06);}[data-theme="dark"] .up-pass-task {    background: var(--ps-surface);    border-color: rgba(228, 224, 218, 0.08);}[data-theme="dark"] .up-pass-task.is-active {    background: linear-gradient(180deg, rgba(42, 39, 34, 0.85) 0%, var(--ps-surface) 100%);    border-color: rgba(201, 168, 76, 0.22);}[data-theme="dark"] .up-pass-task.is-done {    background: rgba(28, 26, 22, 0.78);    border-color: rgba(228, 224, 218, 0.06);}[data-theme="dark"] .up-pass-task.is-ready {    border-color: rgba(74, 168, 125, 0.22);}[data-theme="dark"] .up-node-pin {    border-color: rgba(42, 39, 34, 0.92);    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);}[data-theme="dark"] .up-node.is-claimable .up-node-card {    background: var(--ps-surface-2);    border-color: rgba(74, 168, 125, 0.28);}[data-theme="dark"] .up-node.is-near .up-node-card {    background: linear-gradient(180deg, rgba(42, 39, 34, 0.85) 0%, var(--ps-surface) 100%);    border-color: rgba(201, 168, 76, 0.22);}[data-theme="dark"] .up-node.is-claimed .up-node-card {    background: rgba(28, 26, 22, 0.78);    border-color: rgba(228, 224, 218, 0.06);}[data-theme="dark"] .up-node.is-locked .up-node-card {    background: repeating-linear-gradient(-42deg, transparent, transparent 7px, rgba(255, 255, 255, 0.03) 7px, rgba(255, 255, 255, 0.03) 8px), rgba(42, 39, 34, 0.5);    border-color: rgba(228, 224, 218, 0.1);}[data-theme="dark"] .up-node.is-claimed .up-node-card::after {    background: rgba(42, 39, 34, 0.72);    color: rgba(228, 224, 218, 0.38);    border-color: rgba(228, 224, 218, 0.2);}[data-theme="dark"] .up-pass-task-state-btn.is-running {    color: rgba(201, 168, 76, 0.85);    background: rgba(201, 168, 76, 0.15);    border-color: rgba(201, 168, 76, 0.2);}[data-theme="dark"] .up-pass-task-state-btn.is-claimed {    color: rgba(228, 224, 218, 0.42);    background: rgba(228, 224, 218, 0.04);    border-color: rgba(228, 224, 218, 0.12);}[data-theme="dark"] .up-node.is-locked .up-node-pin {    background: rgba(42, 39, 34, 0.6);    border-color: rgba(228, 224, 218, 0.1);    box-shadow: inset 0 0 0 2px rgba(228, 224, 218, 0.06);}[data-theme="dark"] .up-node.is-locked .up-node-pin-num {    color: rgba(228, 224, 218, 0.25);}[data-theme="dark"] .up-node.is-locked .up-node-kicker,[data-theme="dark"] .up-node.is-locked .up-node-exp-unit,[data-theme="dark"] .up-node.is-locked .up-node-reveal,[data-theme="dark"] .up-node.is-locked .up-node-reveal em {    color: rgba(228, 224, 218, 0.3);}[data-theme="dark"] .up-node.is-locked .up-node-exp-val {    color: rgba(228, 224, 218, 0.25);}[data-theme="dark"] .up-node.is-locked .up-node-flag {    color: rgba(228, 224, 218, 0.3);    background: rgba(42, 39, 34, 0.45);}[data-theme="dark"] .up-node.is-locked .up-node-wait.is-lock {    color: rgba(228, 224, 218, 0.35);    background: rgba(228, 224, 218, 0.05);    border-color: rgba(228, 224, 218, 0.1);}[data-theme="dark"] .up-node.is-near .up-node-pin {    border-color: rgba(42, 39, 34, 0.92);    box-shadow: 0 0 0 4px rgba(201, 168, 76, 0.14), 0 2px 8px rgba(201, 168, 76, 0.12);}[data-theme="dark"] .up-node.is-near .up-node-flag {    color: rgba(201, 168, 76, 0.85);    background: rgba(201, 168, 76, 0.15);    border-color: rgba(201, 168, 76, 0.18);}[data-theme="dark"] .up-node.is-near .up-node-exp-val {    color: #B8923A;}[data-theme="dark"] .up-node.is-near .up-node-wait.is-near {    color: rgba(201, 168, 76, 0.85);    background: rgba(201, 168, 76, 0.12);    border-color: rgba(201, 168, 76, 0.16);}[data-theme="dark"] .up-node.is-claimable .up-node-pin {    border-color: rgba(42, 39, 34, 0.92);    box-shadow: 0 0 0 5px rgba(74, 168, 125, 0.14), 0 0 0 9px rgba(74, 168, 125, 0.06), 0 4px 14px rgba(74, 168, 125, 0.28);}[data-theme="dark"] .up-node.is-claimable .up-node-flag {    color: #1C1A17;}[data-theme="dark"] .up-node.is-claimed .up-node-pin {    background: rgba(58, 80, 68, 0.7);    border-color: rgba(42, 39, 34, 0.92);    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.06);}[data-theme="dark"] .up-node.is-claimed .up-node-pin-num {    color: rgba(228, 224, 218, 0.45);}[data-theme="dark"] .up-node.is-claimed .up-node-exp-val {    color: rgba(228, 224, 218, 0.35);}[data-theme="dark"] .up-node.is-claimed .up-node-done {    color: rgba(74, 168, 125, 0.65);    background: rgba(74, 168, 125, 0.06);    border-color: rgba(74, 168, 125, 0.2);}[data-theme="dark"] .up-node-card {    border-color: rgba(228, 224, 218, 0.08);}[data-theme="dark"] .up-node.is-locked .up-node-reveal {    border-bottom-color: rgba(228, 224, 218, 0.08);}[data-theme="dark"] .up-node-reveal {    border-bottom-color: rgba(228, 224, 218, 0.1);}[data-theme="dark"] .up-node-reveal em {    color: rgba(228, 224, 218, 0.4);}[data-theme="dark"] .up-node-empty {    border-bottom-color: rgba(228, 224, 218, 0.08);}[data-theme="dark"] .up-node.is-near .up-node-pin {    background: var(--ps-surface-2);}[data-theme="dark"] .up-node-pin {    background: var(--ps-surface-2);}.up-pass-hero-grid {    display: flex;    flex-wrap: wrap;    align-items: flex-start;    justify-content: space-between;    gap: 16px 24px;}.up-pass-hero-main {    flex: 1 1 260px;    min-width: 0;}.up-pass-hero-title {    margin: 0;    font-size: clamp(24px, 4.5vw, 32px);    font-weight: 800;    letter-spacing: -0.03em;    line-height: 1.12;    text-wrap: balance;    color: var(--ps-ink);}.up-pass-hero-desc {    margin: 8px 0 0;    max-width: 42ch;    font-size: 13px;    line-height: 1.55;    color: var(--ps-ink-muted);}.up-pass-hero-stats {    display: flex;    flex-wrap: wrap;    gap: 8px;    justify-content: flex-end;}.up-pass-progress-card {    margin-top: 18px;    padding: 16px 18px;    border-radius: var(--ps-radius);    background: rgba(255, 252, 248, 0.72);    border: 1px solid color-mix(in srgb, var(--ps-ink) 6%, var(--ps-border));}.up-pass-progress-top {    display: flex;    flex-wrap: wrap;    align-items: center;    gap: 12px 16px;    margin-bottom: 12px;}.up-pass-level-badge {    flex-shrink: 0;    min-width: 52px;    padding: 8px 12px;    border-radius: 12px;    text-align: center;    font-size: 13px;    font-weight: 800;    font-variant-numeric: tabular-nums;    letter-spacing: -0.02em;    color: var(--ps-gold);    background: var(--ps-gold-soft);    border: 1px solid rgba(154, 123, 47, 0.16);}.up-pass-progress-copy {    flex: 1 1 180px;    min-width: 0;    display: flex;    flex-direction: column;    gap: 3px;}.up-pass-progress-copy strong {    font-size: 14px;    font-weight: 700;    color: var(--ps-ink);    font-variant-numeric: tabular-nums;}.up-pass-progress-copy span {    font-size: 12px;    line-height: 1.45;    color: var(--ps-ink-muted);}.up-pass-progress-copy em {    font-style: normal;    font-weight: 700;    color: var(--ps-accent);    font-variant-numeric: tabular-nums;}.up-pass-progress-exp {    margin-left: auto;    font-size: 22px;    font-weight: 800;    letter-spacing: -0.03em;    font-variant-numeric: tabular-nums;    color: var(--ps-ink);    line-height: 1;}.up-pass-progress-exp small {    font-size: 11px;    font-weight: 700;    letter-spacing: 0.04em;    color: var(--ps-ink-faint);}.up-pass-progress-bar {    height: 10px;    border-radius: 999px;    background: color-mix(in srgb, var(--ps-ink) 5%, var(--ps-surface-2));    overflow: hidden;    box-shadow: inset 0 1px 2px rgba(30, 27, 22, 0.06);}.up-pass-progress-fill {    display: block;    height: 100%;    border-radius: inherit;    background: linear-gradient(90deg, var(--ps-gold) 0%, #B8923A 48%, var(--ps-accent) 100%);    transition: width 0.35s var(--ps-ease);}.up-pass-section {    margin-top: 22px;    padding: 18px 18px 16px;    border-radius: var(--ps-radius-xl);    background: var(--ps-surface);    border: 1px solid var(--ps-border);    box-shadow: var(--ps-shadow-sm);}.up-pass-section-head {    display: flex;    flex-wrap: wrap;    align-items: flex-end;    justify-content: space-between;    gap: 10px 16px;    margin-bottom: 14px;    padding-bottom: 12px;    border-bottom: 1px solid var(--ps-border);}.up-pass-section-kicker {    margin: 0 0 4px;    font-size: 10px;    font-weight: 700;    letter-spacing: 0.14em;    text-transform: uppercase;    color: var(--ps-gold);}.up-pass-section-head h2 {    margin: 0;    font-size: 18px;    font-weight: 800;    letter-spacing: -0.02em;    line-height: 1.2;}.up-pass-section-meta {    font-size: 12px;    font-weight: 600;    color: var(--ps-ink-faint);    font-variant-numeric: tabular-nums;}/* ?? Pass today tasks ?? */.up-pass-today {    margin-top: 22px;    padding: 18px 18px 16px;    border-radius: var(--ps-radius-xl);    background: var(--ps-surface);    border: 1px solid var(--ps-border);    box-shadow: var(--ps-shadow-sm);    --up-pass-task-min: 236px;}.up-pass-today-head {    display: flex;    flex-wrap: wrap;    align-items: center;    justify-content: space-between;    gap: 14px 18px;    margin-bottom: 16px;    padding-bottom: 14px;    border-bottom: 1px solid var(--ps-border);}.up-pass-today-summary {    display: flex;    align-items: center;    gap: 14px;    min-width: 0;}.up-pass-today-ring {    --task-ring-pct: 0;    flex-shrink: 0;    width: 58px;    height: 58px;    border-radius: 50%;    padding: 3px;    background: conic-gradient(        var(--ps-accent) calc(var(--task-ring-pct) * 1%),        color-mix(in srgb, var(--ps-ink) 6%, var(--ps-surface-2)) 0    );    box-shadow: 0 4px 14px rgba(45, 90, 74, 0.1);}.up-pass-today-ring-inner {    width: 100%;    height: 100%;    border-radius: 50%;    display: grid;    place-items: center;    background: var(--ps-surface);    font-size: 11px;    font-weight: 800;    font-variant-numeric: tabular-nums;    letter-spacing: -0.02em;    color: var(--ps-ink);}.up-pass-today-intro h2 {    margin: 0;    font-size: 18px;    font-weight: 800;    letter-spacing: -0.02em;    line-height: 1.2;}.up-pass-today-desc {    margin: 5px 0 0;    font-size: 12px;    line-height: 1.45;    color: var(--ps-ink-muted);}.up-pass-today-badges {    display: flex;    flex-wrap: wrap;    gap: 8px;}.up-pass-today-badge {    display: inline-flex;    align-items: center;    min-height: 28px;    padding: 0 11px;    border-radius: 999px;    font-size: 11px;    font-weight: 700;    font-variant-numeric: tabular-nums;    color: var(--ps-ink-muted);    background: var(--ps-surface-2);    border: 1px solid var(--ps-border);}.up-pass-today-badge.is-done {    color: var(--ps-success);    background: rgba(58, 107, 82, 0.08);    border-color: rgba(58, 107, 82, 0.16);}.up-pass-today-badge.is-pending {    color: var(--ps-gold);    background: var(--ps-gold-soft);    border-color: rgba(154, 123, 47, 0.16);}.up-pass-hscroll {    margin: 0;    padding: 4px 8px 12px;    overflow-x: auto;    overflow-y: hidden;    -webkit-overflow-scrolling: touch;    scroll-snap-type: none;    scrollbar-gutter: stable;    scrollbar-width: thin;    scrollbar-color: rgba(100, 116, 139, 0.35) transparent;    cursor: grab;    touch-action: pan-x;}.up-pass-hscroll.is-dragging {    cursor: grabbing;    user-select: none;    scroll-behavior: auto;}.up-pass-hscroll.is-dragging .up-pass-task,.up-pass-hscroll.is-dragging .up-node {    pointer-events: none;}.up-pass-hscroll::-webkit-scrollbar {    height: 6px;}.up-pass-hscroll::-webkit-scrollbar-track {    background: transparent;}.up-pass-hscroll::-webkit-scrollbar-thumb {    background: rgba(100, 116, 139, 0.32);    border-radius: 999px;}.up-pass-hscroll::-webkit-scrollbar-thumb:hover {    background: rgba(100, 116, 139, 0.48);}.up-pass-task-scroll.up-pass-hscroll {    padding: 8px 8px 12px;}.up-pass-task-grid {    display: flex;    flex-direction: row;    align-items: stretch;    gap: 12px;    width: max-content;    min-width: 100%;    padding: 0 4px 2px;    box-sizing: border-box;}.up-pass-task {    flex: 0 0 var(--up-pass-task-min, 220px);    min-width: var(--up-pass-task-min, 220px);    max-width: none;    display: flex;    flex-direction: column;    min-height: 228px;    padding: 14px 14px 12px;    border-radius: var(--ps-radius);    background: linear-gradient(180deg, #FFFCF8 0%, var(--ps-surface) 100%);    border: 1px solid var(--ps-border);    box-shadow: var(--ps-shadow-sm);    transition: border-color 0.2s, box-shadow 0.2s;}.up-pass-task.is-ready {    border-color: rgba(45, 90, 74, 0.22);    box-shadow: 0 10px 26px rgba(45, 90, 74, 0.08);}.up-pass-task.is-active {    border-color: rgba(154, 123, 47, 0.2);    background: linear-gradient(180deg, #FFFCF6 0%, var(--ps-surface) 100%);}.up-pass-task.is-done {    background: #F3F2EE;    border-color: rgba(30, 27, 22, 0.1);    box-shadow: none;}.up-pass-task.is-idle {    opacity: 0.96;}.up-pass-task-top {    display: flex;    align-items: center;    justify-content: space-between;    gap: 10px;    margin-bottom: 12px;}.up-pass-task-icon {    width: 42px;    height: 42px;    border-radius: 12px;    display: grid;    place-items: center;    background: var(--ps-surface-2);    color: var(--ps-ink-muted);    border: 1px solid var(--ps-border);}.up-pass-task-icon .layui-icon {    font-size: 18px;    line-height: 1;}.up-pass-task.is-ready .up-pass-task-icon {    color: var(--ps-accent);    background: var(--ps-accent-soft);    border-color: rgba(45, 90, 74, 0.14);}.up-pass-task.is-active .up-pass-task-icon {    color: #8B6914;    background: var(--ps-gold-soft);    border-color: rgba(154, 123, 47, 0.16);}.up-pass-task.is-done .up-pass-task-icon {    color: #5E6F66;    background: rgba(30, 27, 22, 0.05);    border-color: rgba(30, 27, 22, 0.08);}.up-pass-task.is-done .up-pass-task-exp {    color: rgba(30, 27, 22, 0.38);    background: rgba(30, 27, 22, 0.05);}.up-pass-task-exp {    display: inline-flex;    align-items: center;    min-height: 26px;    padding: 0 9px;    border-radius: 999px;    font-size: 10px;    font-weight: 700;    letter-spacing: 0.03em;    color: var(--ps-accent);    background: var(--ps-accent-soft);    flex-shrink: 0;}.up-pass-task-title {    margin: 0;    font-size: 15px;    font-weight: 700;    letter-spacing: -0.01em;    line-height: 1.35;    text-wrap: balance;}.up-pass-task-hint {    margin: 6px 0 0;    font-size: 12px;    line-height: 1.5;    color: var(--ps-ink-muted);    flex: 1;    min-height: 2.8em;}.up-pass-task-meter {    margin-top: 12px;}.up-pass-task-meter-head {    display: flex;    align-items: center;    justify-content: space-between;    gap: 8px;    margin-bottom: 6px;    font-size: 11px;    font-weight: 600;    color: var(--ps-ink-faint);    font-variant-numeric: tabular-nums;}.up-pass-task-meter-pct {    color: var(--ps-ink-muted);}.up-pass-task-meter-bar {    height: 6px;    border-radius: 999px;    background: var(--ps-surface-2);    overflow: hidden;}.up-pass-task-meter-fill {    display: block;    height: 100%;    border-radius: inherit;    background: linear-gradient(90deg, var(--ps-accent) 0%, #3d7a64 100%);    transition: width 0.3s var(--ps-ease);}.up-pass-task.is-done .up-pass-task-meter-fill {    background: #C8D2CC;    opacity: 1;}.up-pass-task.is-active .up-pass-task-meter-fill {    background: linear-gradient(90deg, var(--ps-gold) 0%, #B8943A 100%);}.up-pass-task.is-idle .up-pass-task-meter-fill {    background: color-mix(in srgb, var(--ps-ink) 18%, var(--ps-surface-2));}.up-pass-task-foot {    display: flex;    flex-direction: column;    align-items: stretch;    gap: 8px;    margin-top: auto;    padding-top: 12px;    border-top: 1px solid var(--ps-border);}.up-pass-task-status {    font-size: 11px;    font-weight: 600;    color: var(--ps-ink-faint);    text-align: center;}.up-pass-task.is-ready .up-pass-task-status {    color: var(--ps-accent);}.up-pass-task.is-active .up-pass-task-status {    color: #8B6914;}.up-pass-task.is-done .up-pass-task-status {    color: rgba(30, 27, 22, 0.42);}.up-pass-task.is-idle .up-pass-task-status {    color: var(--ps-ink-faint);}.up-pass-task-act {    width: 100%;}.up-pass-task-act .up-gift-claim-btn {    width: 100%;    min-height: 36px;    padding: 0 12px;    font-size: 12px;}.up-pass-task-state-btn {    width: 100%;    min-height: 36px;    padding: 0 12px;    border-radius: var(--ps-radius-sm);    font-size: 12px;    font-weight: 700;    letter-spacing: 0.03em;    cursor: not-allowed;    box-shadow: none;    transition: none;}.up-pass-task-state-btn.is-running {    color: #8B6914;    background: var(--ps-gold-soft);    border: 1px solid rgba(154, 123, 47, 0.18);}.up-pass-task-state-btn.is-claimed {    color: rgba(30, 27, 22, 0.42);    background: rgba(30, 27, 22, 0.04);    border: 1px dashed rgba(30, 27, 22, 0.14);}/* ?? Pass level rewards ?? */.up-pass-rewards {    margin-top: 22px;    padding: 18px 18px 16px;    border-radius: var(--ps-radius-xl);    background: var(--ps-surface);    border: 1px solid var(--ps-border);    box-shadow: var(--ps-shadow-sm);    --up-pass-reward-min: 236px;}.up-pass-rewards-head {    display: flex;    flex-wrap: wrap;    align-items: center;    justify-content: space-between;    gap: 14px 18px;    margin-bottom: 16px;    padding-bottom: 14px;    border-bottom: 1px solid var(--ps-border);}.up-pass-rewards-intro h2 {    margin: 0;    font-size: 18px;    font-weight: 800;    letter-spacing: -0.02em;    line-height: 1.2;}.up-pass-rewards-desc {    margin: 5px 0 0;    font-size: 12px;    line-height: 1.45;    color: var(--ps-ink-muted);}.up-pass-rewards-badges {    display: flex;    flex-wrap: wrap;    gap: 8px;}.up-pass-reward-scroll.up-pass-hscroll {    padding: 16px 8px 12px;}.up-pass-reward-grid {    display: flex;    flex-direction: row;    align-items: flex-start;    gap: 10px;    width: max-content;    min-width: 100%;    padding: 2px 4px 8px;    box-sizing: border-box;}/* ?? Pass level pin + card ?? */.up-node {    position: relative;    flex: 0 0 var(--up-pass-reward-min, 220px);    min-width: var(--up-pass-reward-min, 220px);    display: flex;    flex-direction: column;    align-items: center;}.up-node-pin-wrap {    display: flex;    justify-content: center;    height: 44px;    margin-bottom: -22px;    position: relative;    z-index: 2;}.up-node-pin {    position: relative;    z-index: 3;    flex-shrink: 0;    width: 44px;    height: 44px;    display: grid;    place-items: center;    border-radius: 50%;    background: var(--ps-surface);    border: 3px solid #fff;    box-shadow: 0 2px 10px rgba(30, 27, 22, 0.1);    transition: border-color 0.22s, box-shadow 0.22s, background 0.22s;}.up-node-pin-num {    font-size: 16px;    font-weight: 800;    font-variant-numeric: tabular-nums;    letter-spacing: -0.03em;    color: var(--ps-ink-muted);    line-height: 1;}.up-node-card {    position: relative;    width: 100%;    display: flex;    flex-direction: column;    gap: 10px;    min-height: 192px;    padding: 28px 14px 14px;    border-radius: calc(var(--ps-radius) + 2px);    border: 1px solid var(--ps-border);    background: var(--ps-surface);    box-shadow: var(--ps-shadow-sm);    transition: border-color 0.22s, box-shadow 0.22s, background 0.22s;    overflow: hidden;}.up-node-head {    display: flex;    align-items: center;    justify-content: space-between;    gap: 6px;}.up-node-kicker {    font-size: 10px;    font-weight: 700;    letter-spacing: 0.08em;    text-transform: uppercase;    color: var(--ps-ink-faint);}.up-node-flag {    flex-shrink: 0;    min-height: 22px;    padding: 0 8px;    border-radius: 999px;    font-size: 10px;    font-weight: 700;    color: var(--ps-ink-muted);    background: var(--ps-surface-2);    border: 1px solid var(--ps-border);}.up-node-exp {    display: flex;    align-items: baseline;    gap: 4px;    margin: 0;    font-variant-numeric: tabular-nums;}.up-node-exp-val {    font-size: 24px;    font-weight: 800;    line-height: 1;    letter-spacing: -0.04em;    color: var(--ps-ink);}.up-node-exp-unit {    font-size: 10px;    font-weight: 700;    letter-spacing: 0.1em;    color: var(--ps-ink-faint);}.up-node-reveal {    display: flex;    align-items: center;    justify-content: space-between;    gap: 8px;    width: 100%;    margin: 0;    padding: 8px 0;    border: none;    border-bottom: 1px dashed rgba(30, 27, 22, 0.14);    background: none;    color: var(--ps-ink-muted);    font-size: 12px;    font-weight: 600;    text-align: left;    cursor: pointer;    transition: color 0.15s, border-color 0.15s;}.up-node-reveal em {    font-style: normal;    font-size: 11px;    font-weight: 800;    font-variant-numeric: tabular-nums;    color: var(--ps-ink-faint);}.up-node-reveal:hover {    color: var(--ps-accent);    border-bottom-color: rgba(45, 90, 74, 0.28);}.up-node-reveal:hover em {    color: var(--ps-accent);}.up-node-reveal:focus-visible {    outline: 2px solid rgba(45, 90, 74, 0.28);    outline-offset: 3px;    border-radius: 4px;}.up-node-empty {    margin: 0;    padding: 8px 0;    font-size: 11px;    color: var(--ps-ink-faint);    text-align: center;    border-bottom: 1px dashed var(--ps-border);}.up-node-foot {    margin-top: auto;}.up-node-claim {    width: 100%;    min-height: 36px;    font-size: 12px;}.up-node-done,.up-node-wait {    margin: 0;    min-height: 36px;    display: flex;    align-items: center;    justify-content: center;    border-radius: var(--ps-radius-sm);    font-size: 11px;    font-weight: 700;    letter-spacing: 0.03em;}.up-node-done {    color: rgba(58, 107, 82, 0.75);    background: rgba(58, 107, 82, 0.06);    border: 1px dashed rgba(58, 107, 82, 0.22);}.up-node-wait {    color: var(--ps-ink-faint);    background: rgba(30, 27, 22, 0.03);    border: 1px solid rgba(30, 27, 22, 0.06);}/* Locked */.up-node.is-locked .up-node-pin {    background: #D4CFC6;    border-color: rgba(255, 255, 255, 0.92);    box-shadow: inset 0 0 0 2px rgba(30, 27, 22, 0.08);}.up-node.is-locked .up-node-pin-num {    color: rgba(30, 27, 22, 0.28);}.up-node.is-locked .up-node-card {    background:        repeating-linear-gradient(            -42deg,            transparent,            transparent 7px,            rgba(30, 27, 22, 0.028) 7px,            rgba(30, 27, 22, 0.028) 8px        ),        #E6E2DA;    border-style: dashed;    border-color: rgba(30, 27, 22, 0.16);    box-shadow: none;}.up-node.is-locked .up-node-kicker,.up-node.is-locked .up-node-exp-unit,.up-node.is-locked .up-node-reveal,.up-node.is-locked .up-node-reveal em {    color: rgba(30, 27, 22, 0.38);}.up-node.is-locked .up-node-exp-val {    color: rgba(30, 27, 22, 0.3);}.up-node.is-locked .up-node-reveal {    border-bottom-color: rgba(30, 27, 22, 0.1);    pointer-events: auto;}.up-node.is-locked .up-node-flag {    color: var(--ps-ink-faint);    background: rgba(255, 255, 255, 0.35);}.up-node.is-locked .up-node-wait.is-lock {    color: rgba(30, 27, 22, 0.48);    background: rgba(30, 27, 22, 0.07);    border: 1px solid rgba(30, 27, 22, 0.14);    letter-spacing: 0.06em;}/* Near */.up-node.is-near .up-node-pin {    background: var(--ps-surface);    border-color: #fff;    box-shadow:        0 0 0 4px rgba(154, 123, 47, 0.14),        0 2px 8px rgba(154, 123, 47, 0.12);}.up-node.is-near .up-node-pin-num {    color: #8B6914;}.up-node.is-near .up-node-card {    border-color: rgba(154, 123, 47, 0.22);    background: linear-gradient(180deg, #FFFCF6 0%, var(--ps-surface) 100%);}.up-node.is-near .up-node-flag {    color: #8B6914;    background: var(--ps-gold-soft);    border-color: rgba(154, 123, 47, 0.16);}.up-node.is-near .up-node-exp-val {    color: #7A6020;}.up-node.is-near .up-node-wait.is-near {    color: #8B6914;    background: var(--ps-gold-soft);    border-color: rgba(154, 123, 47, 0.14);}/* Claimable */.up-node.is-claimable .up-node-pin {    background: var(--ps-accent);    border-color: #fff;    box-shadow:        0 0 0 5px rgba(45, 90, 74, 0.14),        0 0 0 9px rgba(45, 90, 74, 0.06),        0 4px 14px rgba(45, 90, 74, 0.28);    animation: up-node-pin-pulse 2.8s ease-in-out infinite;}.up-node.is-claimable .up-node-pin-num {    color: #fff;}@keyframes up-node-pin-pulse {    0%, 100% {        box-shadow:            0 0 0 5px rgba(45, 90, 74, 0.14),            0 0 0 9px rgba(45, 90, 74, 0.06),            0 4px 14px rgba(45, 90, 74, 0.24);    }    50% {        box-shadow:            0 0 0 7px rgba(45, 90, 74, 0.1),            0 0 0 12px rgba(45, 90, 74, 0.04),            0 6px 18px rgba(45, 90, 74, 0.32);    }}.up-node.is-claimable .up-node-card {    border-color: rgba(45, 90, 74, 0.28);    background: #fff;    box-shadow: 0 12px 32px rgba(45, 90, 74, 0.12);}.up-node.is-claimable .up-node-flag {    color: #fff;    background: var(--ps-accent);    border-color: transparent;}.up-node.is-claimable .up-node-exp-val {    color: var(--ps-accent);}/* Claimed */.up-node.is-claimed .up-node-pin {    background: #C8D2CC;    border-color: #fff;    box-shadow:        0 0 0 3px rgba(30, 27, 22, 0.05),        0 2px 8px rgba(30, 27, 22, 0.08);}.up-node.is-claimed .up-node-pin-num {    color: #5E6F66;}.up-node.is-claimed .up-node-card {    background: #F3F2EE;    border-color: rgba(30, 27, 22, 0.1);    box-shadow: none;}.up-node.is-claimed .up-node-card::after {    content: '???';    position: absolute;    top: 30px;    right: 8px;    z-index: 1;    padding: 2px 8px;    border: 2px double rgba(110, 102, 92, 0.34);    border-radius: 3px;    font-size: 11px;    font-weight: 900;    letter-spacing: 0.14em;    text-indent: 0.14em;    color: rgba(110, 102, 92, 0.38);    background: rgba(255, 252, 248, 0.55);    transform: rotate(-12deg);    pointer-events: none;    white-space: nowrap;}.up-node.is-claimed .up-node-exp-val {    color: rgba(30, 27, 22, 0.38);}.up-node.is-claimed .up-node-done {    color: rgba(30, 27, 22, 0.42);    background: rgba(30, 27, 22, 0.04);    border-color: rgba(30, 27, 22, 0.12);}@media (prefers-reduced-motion: reduce) {    .up-node.is-claimable .up-node-pin {        animation: none;    }}@media screen and (max-width: 720px) {    .up-pass-hero {        padding: 18px 16px 16px;    }    .up-pass-hero-stats {        width: 100%;        justify-content: flex-start;    }    .up-pass-progress-exp {        width: 100%;        margin-left: 0;        margin-top: 2px;    }    .up-pass-section {        padding: 16px 14px 14px;    }    .up-pass-today {        padding: 16px 14px 14px;    }    .up-pass-rewards {        padding: 16px 14px 14px;    }    .up-pass-today-head,    .up-pass-rewards-head {        flex-direction: column;        align-items: stretch;    }    .up-pass-today-badges,    .up-pass-rewards-badges {        justify-content: flex-start;    }    .up-pass-hscroll {        padding: 4px 6px 12px;    }    .up-pass-reward-scroll.up-pass-hscroll {        padding: 14px 6px 12px;    }    .up-pass-task {        flex: 0 0 var(--up-pass-task-min, 220px);        min-width: var(--up-pass-task-min, 220px);    }    .up-node {        flex: 0 0 var(--up-pass-reward-min, 220px);        min-width: var(--up-pass-reward-min, 220px);    }}/* ?? Daily board (checkin page) ?? */.up-daily-masthead {    display: grid;    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);    gap: 20px 28px;    align-items: end;    padding: 22px 24px;    margin-bottom: 16px;    border-radius: var(--ps-radius-xl);    background:        radial-gradient(ellipse 70% 90% at 0% 0%, rgba(45, 90, 74, 0.09) 0%, transparent 58%),        radial-gradient(ellipse 50% 70% at 100% 100%, rgba(154, 123, 47, 0.07) 0%, transparent 55%),        linear-gradient(155deg, #FFFCF8 0%, var(--ps-surface) 48%, var(--ps-surface-2) 100%);    border: 1px solid var(--ps-border);    box-shadow: var(--ps-shadow-sm);}.up-daily-masthead .ps-kicker {    margin: 0 0 8px;    color: var(--ps-gold);}.up-daily-title {    margin: 0;    font-size: clamp(26px, 5vw, 34px);    font-weight: 800;    letter-spacing: -0.04em;    line-height: 1.05;    text-wrap: balance;    color: var(--ps-ink);}.up-daily-lead {    margin: 10px 0 0;    max-width: 36ch;    font-size: 13px;    line-height: 1.55;    color: var(--ps-ink-muted);}.up-daily-metrics {    display: grid;    grid-template-columns: repeat(3, minmax(0, 1fr));    gap: 10px;}.up-daily-metric {    display: flex;    flex-direction: column;    gap: 4px;    padding: 14px 12px;    border-radius: var(--ps-radius-sm);    background: rgba(255, 252, 248, 0.72);    border: 1px solid var(--ps-border);    min-width: 0;}.up-daily-metric strong {    font-size: 22px;    font-weight: 800;    font-variant-numeric: tabular-nums;    letter-spacing: -0.04em;    line-height: 1;    color: var(--ps-ink);}.up-daily-metric strong em {    font-style: normal;    font-size: 14px;    font-weight: 700;    color: var(--ps-ink-faint);}.up-daily-metric span {    font-size: 10px;    font-weight: 700;    letter-spacing: 0.06em;    color: var(--ps-ink-faint);}.up-daily-metric.is-accent strong { color: var(--ps-accent); }.up-daily-metric.is-gold strong { color: var(--ps-gold); }.up-daily-board {    --daily-stage-h: 136px;    --daily-loot-h: 64px;    --daily-head-h: 56px;    display: grid;    grid-template-columns: repeat(2, minmax(0, 1fr));    gap: 14px;    align-items: stretch;}.up-daily-panel {    position: relative;    display: flex;    flex-direction: column;    min-height: 100%;    padding: 18px 20px 16px;    border-radius: var(--ps-radius-xl);    background: var(--ps-surface);    border: 1px solid var(--ps-border);    box-shadow: var(--ps-shadow-sm);    overflow: hidden;}.up-daily-panel::after {    content: '';    position: absolute;    inset: 0;    pointer-events: none;    border-radius: inherit;    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);}.up-daily-panel--signin.is-ready {    border-color: rgba(45, 90, 74, 0.22);    box-shadow:        0 10px 32px rgba(45, 90, 74, 0.1),        inset 0 1px 0 rgba(255, 255, 255, 0.65);}.up-daily-panel--signin.is-done {    border-color: rgba(58, 107, 82, 0.18);    box-shadow: 0 8px 24px rgba(58, 107, 82, 0.06);}.up-daily-panel--punch.is-ready {    border-color: rgba(154, 123, 47, 0.22);}.up-daily-panel--punch.is-cooldown {    border-color: rgba(154, 123, 47, 0.14);}.up-daily-panel-head {    display: flex;    flex-wrap: wrap;    align-items: center;    justify-content: space-between;    gap: 10px 16px;    margin-bottom: 12px;    min-height: var(--daily-head-h);}.up-daily-panel-body {    flex: 1;    display: grid;    grid-template-rows: var(--daily-stage-h) minmax(var(--daily-loot-h), auto);    gap: 12px;    align-content: start;    min-height: calc(var(--daily-stage-h) + var(--daily-loot-h) + 12px);}.up-daily-panel-kicker {    margin: 0 0 4px;    font-size: 10px;    font-weight: 700;    letter-spacing: 0.1em;    text-transform: uppercase;    color: var(--ps-ink-faint);}.up-daily-panel-intro h2 {    margin: 0;    font-size: 18px;    font-weight: 800;    letter-spacing: -0.03em;    line-height: 1.15;    color: var(--ps-ink);}.up-daily-panel-meta {    display: flex;    flex-wrap: wrap;    align-items: center;    gap: 6px;}.up-daily-tier {    display: inline-flex;    align-items: center;    min-height: 26px;    padding: 0 10px;    border-radius: 999px;    font-size: 10px;    font-weight: 700;    letter-spacing: 0.04em;    color: var(--ps-ink-muted);    background: var(--ps-surface-2);    border: 1px solid var(--ps-border);}.up-daily-tier.is-vip {    color: var(--ps-accent);    background: var(--ps-accent-soft);    border-color: rgba(45, 90, 74, 0.12);}.up-daily-meta-chip {    font-size: 10px;    font-weight: 600;    color: var(--ps-ink-faint);    font-variant-numeric: tabular-nums;}.up-daily-punch-stage {    height: var(--daily-stage-h);    display: flex;    align-items: center;    justify-content: center;    padding: 0;    overflow: visible;}/* ?? Punch star-orbit dial ?? */.up-daily-pulse {    --pulse-size: 128px;    --pulse-c: 238.76;    position: relative;    width: var(--pulse-size);    height: var(--pulse-size);    flex-shrink: 0;    isolation: isolate;}.up-daily-pulse-halo {    position: absolute;    inset: -14px;    border-radius: 50%;    pointer-events: none;    opacity: 0;    transition: opacity 0.45s var(--ps-ease);}.up-daily-pulse.is-ready .up-daily-pulse-halo {    opacity: 1;    background:        radial-gradient(circle, rgba(45, 90, 74, 0.2) 0%, rgba(45, 90, 74, 0.06) 42%, transparent 72%);    animation: up-pulse-halo 3.4s ease-in-out infinite;}.up-daily-pulse.is-cooldown .up-daily-pulse-halo {    opacity: 1;    background:        radial-gradient(circle, rgba(196, 162, 78, 0.24) 0%, rgba(196, 162, 78, 0.08) 38%, transparent 70%);    animation: up-pulse-halo 4.2s ease-in-out infinite;}.up-daily-pulse-tickring {    position: absolute;    inset: 3px;    border-radius: 50%;    pointer-events: none;    background: repeating-conic-gradient(        from -90deg,        rgba(154, 123, 47, 0.22) 0deg 1.5deg,        transparent 1.5deg 15deg    );    -webkit-mask: radial-gradient(circle, transparent 58%, #000 59%, #000 63%, transparent 64%);    mask: radial-gradient(circle, transparent 58%, #000 59%, #000 63%, transparent 64%);    opacity: 0.55;}.up-daily-pulse.is-ready .up-daily-pulse-tickring {    background: repeating-conic-gradient(        from -90deg,        rgba(45, 90, 74, 0.28) 0deg 1.5deg,        transparent 1.5deg 15deg    );    opacity: 0.7;}.up-daily-pulse-orbit {    position: absolute;    border-radius: 50%;    pointer-events: none;}.up-daily-pulse-orbit--outer {    inset: 0;    border: 1px dashed rgba(154, 123, 47, 0.2);}.up-daily-pulse-orbit--inner {    inset: 7px;    border: 1px dotted rgba(154, 123, 47, 0.16);}.up-daily-pulse.is-ready .up-daily-pulse-orbit--outer {    border-color: rgba(45, 90, 74, 0.24);    animation: up-pulse-orbit-spin 28s linear infinite;}.up-daily-pulse.is-ready .up-daily-pulse-orbit--inner {    border-color: rgba(196, 162, 78, 0.22);    animation: up-pulse-orbit-spin-rev 18s linear infinite;}.up-daily-pulse.is-cooldown .up-daily-pulse-orbit--outer {    animation: up-pulse-orbit-spin 36s linear infinite;}.up-daily-pulse-svg {    position: absolute;    inset: 0;    width: 100%;    height: 100%;    transform: rotate(-90deg);    overflow: visible;}.up-daily-pulse-track {    fill: none;    stroke: rgba(30, 27, 22, 0.07);    stroke-width: 3;}.up-daily-pulse-progress-shadow {    fill: none;    stroke: url(#dailyPunchPulseGradCool);    stroke-width: 6;    stroke-linecap: round;    stroke-dasharray: var(--pulse-c);    stroke-dashoffset: calc(var(--pulse-c) * (1 - var(--ring-pct, 0) / 100));    opacity: 0.28;    filter: url(#dailyPunchPulseSoft);    transition: stroke-dashoffset 0.85s linear;}.up-daily-pulse.is-ready .up-daily-pulse-progress-shadow {    stroke: url(#dailyPunchPulseGradReady);    stroke-dashoffset: 0;    opacity: 0.35;}.up-daily-pulse-progress {    fill: none;    stroke: url(#dailyPunchPulseGradCool);    stroke-width: 4;    stroke-linecap: round;    stroke-dasharray: var(--pulse-c);    stroke-dashoffset: calc(var(--pulse-c) * (1 - var(--ring-pct, 0) / 100));    filter: url(#dailyPunchPulseGlow);    transition: stroke-dashoffset 0.85s linear;}.up-daily-pulse.is-ready .up-daily-pulse-progress {    stroke: url(#dailyPunchPulseGradReady);    stroke-dashoffset: 0;}.up-daily-pulse-beacon-wrap {    position: absolute;    inset: 0;    transform: rotate(calc(var(--ring-pct, 0) * 3.6deg - 90deg));    transition: transform 0.85s linear;    pointer-events: none;}.up-daily-pulse-beacon {    position: absolute;    top: 3px;    left: 50%;    width: 9px;    height: 9px;    margin-left: -4.5px;    border-radius: 50%;    background: linear-gradient(145deg, #F0E0A0 0%, #C4A24E 55%, #8B6914 100%);    box-shadow:        0 0 0 2px rgba(255, 252, 244, 0.85),        0 0 12px rgba(196, 162, 78, 0.65),        0 0 24px rgba(196, 162, 78, 0.28);}.up-daily-pulse.is-ready .up-daily-pulse-beacon {    background: linear-gradient(145deg, #6BB896 0%, #2D5A4A 55%, #C4A24E 100%);    box-shadow:        0 0 0 2px rgba(255, 252, 244, 0.9),        0 0 14px rgba(45, 90, 74, 0.55),        0 0 28px rgba(45, 90, 74, 0.22);    animation: up-pulse-beacon 2.4s ease-in-out infinite;}.up-daily-pulse.is-ready .up-daily-pulse-beacon-wrap {    animation: up-pulse-orbit-spin 24s linear infinite;}.up-daily-pulse-core {    position: absolute;    inset: 24px;    border-radius: 50%;    display: grid;    place-items: center;    background:        radial-gradient(circle at 28% 22%, rgba(255, 253, 248, 1) 0%, transparent 44%),        radial-gradient(circle at 72% 78%, rgba(196, 162, 78, 0.1) 0%, transparent 48%),        linear-gradient(168deg, #FFFCF8 0%, var(--ps-surface-2) 100%);    border: 1px solid rgba(255, 255, 255, 0.95);    box-shadow:        inset 0 2px 0 rgba(255, 255, 255, 0.98),        inset 0 -10px 22px rgba(154, 123, 47, 0.07),        0 8px 24px rgba(30, 27, 22, 0.1);    overflow: hidden;}.up-daily-pulse-core::before {    content: '';    position: absolute;    inset: -55%;    background: conic-gradient(from 200deg, transparent 0deg, rgba(255, 255, 255, 0.5) 24deg, transparent 48deg);    animation: up-pulse-sweep 6s linear infinite;    pointer-events: none;}.up-daily-pulse-core::after {    content: '';    position: absolute;    inset: 0;    border-radius: inherit;    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35);    pointer-events: none;}.up-daily-pulse.is-ready .up-daily-pulse-core {    box-shadow:        inset 0 0 0 1px rgba(45, 90, 74, 0.14),        0 0 0 4px rgba(45, 90, 74, 0.07),        0 0 32px rgba(45, 90, 74, 0.18),        0 10px 28px rgba(45, 90, 74, 0.12);    animation: up-pulse-core-breathe 3.2s ease-in-out infinite;}.up-daily-pulse.is-cooldown .up-daily-pulse-core {    box-shadow:        inset 0 0 0 1px rgba(196, 162, 78, 0.12),        0 0 0 3px rgba(196, 162, 78, 0.06),        0 0 20px rgba(196, 162, 78, 0.12),        0 8px 22px rgba(30, 27, 22, 0.08);}.up-daily-pulse-motes {    position: absolute;    inset: -6px;    pointer-events: none;}.up-daily-pulse-motes span {    position: absolute;    width: 5px;    height: 5px;    border-radius: 50%;    background: var(--ps-accent);    box-shadow: 0 0 10px rgba(45, 90, 74, 0.6);    opacity: 0;}.up-daily-pulse-motes span:nth-child(1) {    top: 6%;    left: 50%;    animation: up-pulse-mote-a 4.2s ease-in-out infinite;}.up-daily-pulse-motes span:nth-child(2) {    bottom: 12%;    left: 14%;    animation: up-pulse-mote-b 4.8s ease-in-out infinite 0.5s;}.up-daily-pulse-motes span:nth-child(3) {    bottom: 16%;    right: 12%;    animation: up-pulse-mote-c 4.5s ease-in-out infinite 1s;}.up-daily-pulse-motes span:nth-child(4) {    top: 42%;    right: 6%;    animation: up-pulse-mote-d 5.2s ease-in-out infinite 1.6s;}.up-daily-pulse-state {    position: relative;    z-index: 1;    display: flex;    flex-direction: column;    align-items: center;    gap: 6px;    text-align: center;}.up-daily-pulse-state[hidden] {    display: none !important;}.up-daily-pulse-mark {    display: grid;    place-items: center;    width: 30px;    height: 30px;    border-radius: 50%;    background: linear-gradient(145deg, rgba(45, 90, 74, 0.16) 0%, rgba(45, 90, 74, 0.05) 100%);    box-shadow:        0 0 0 3px rgba(45, 90, 74, 0.08),        0 0 16px rgba(45, 90, 74, 0.15);}.up-daily-pulse-mark svg {    width: 16px;    height: 16px;    fill: none;    stroke: var(--ps-accent);    stroke-width: 2.4;    stroke-linecap: round;    stroke-linejoin: round;    filter: drop-shadow(0 0 5px rgba(45, 90, 74, 0.4));}.up-daily-pulse-label {    font-size: 10px;    font-weight: 800;    letter-spacing: 0.14em;    color: var(--ps-ink-faint);    line-height: 1;}.up-daily-pulse.is-ready .up-daily-pulse-label {    color: var(--ps-accent);}.up-daily-pulse.is-cooldown .up-daily-pulse-label {    color: rgba(154, 123, 47, 0.75);}.up-daily-pulse-time {    font-size: 20px;    font-weight: 800;    font-variant-numeric: tabular-nums;    letter-spacing: -0.03em;    line-height: 1;    background: linear-gradient(165deg, #B8922E 0%, #E8D48A 45%, #9A7B2F 100%);    -webkit-background-clip: text;    background-clip: text;    color: transparent;    filter: drop-shadow(0 1px 0 rgba(255, 255, 255, 0.6));}@keyframes up-pulse-halo {    0%, 100% { transform: scale(0.94); opacity: 0.6; }    50% { transform: scale(1.06); opacity: 1; }}@keyframes up-pulse-orbit-spin {    to { transform: rotate(360deg); }}@keyframes up-pulse-orbit-spin-rev {    to { transform: rotate(-360deg); }}@keyframes up-pulse-beacon {    0%, 100% { transform: scale(1); opacity: 1; }    50% { transform: scale(1.18); opacity: 0.88; }}@keyframes up-pulse-core-breathe {    0%, 100% { transform: scale(1); }    50% { transform: scale(1.025); }}@keyframes up-pulse-sweep {    to { transform: rotate(360deg); }}@keyframes up-pulse-mote-a {    0%, 100% { transform: translate(-50%, 0) scale(0.5); opacity: 0; }    20%, 70% { opacity: 1; }    50% { transform: translate(-50%, -7px) scale(1); }}@keyframes up-pulse-mote-b {    0%, 100% { transform: translate(0, 0) scale(0.45); opacity: 0; }    25%, 75% { opacity: 0.92; }    50% { transform: translate(5px, -9px) scale(1); }}@keyframes up-pulse-mote-c {    0%, 100% { transform: translate(0, 0) scale(0.45); opacity: 0; }    25%, 75% { opacity: 0.88; }    50% { transform: translate(-6px, -8px) scale(1); }}@keyframes up-pulse-mote-d {    0%, 100% { transform: translate(0, 0) scale(0.4); opacity: 0; }    30%, 70% { opacity: 0.8; }    50% { transform: translate(-4px, 6px) scale(1); }}@media (prefers-reduced-motion: reduce) {    .up-daily-pulse-halo,    .up-daily-pulse-orbit--outer,    .up-daily-pulse-orbit--inner,    .up-daily-pulse.is-ready .up-daily-pulse-beacon-wrap,    .up-daily-pulse.is-ready .up-daily-pulse-beacon,    .up-daily-pulse.is-ready .up-daily-pulse-core,    .up-daily-pulse-core::before,    .up-daily-pulse-motes span {        animation: none;    }}/* ?? Sign-in star chain (????) ?? */.up-signin-chain {    height: var(--daily-stage-h);    margin: 0;    padding: 0;    display: flex;    align-items: center;    justify-content: center;}.up-signin-chain-stage {    position: relative;    width: 100%;    padding: 10px 6px 8px;}.up-signin-chain-dust {    position: absolute;    inset: 0;    pointer-events: none;    opacity: 0.7;    background:        radial-gradient(circle at 12% 28%, rgba(196, 162, 78, 0.35) 0 1.5px, transparent 2.5px),        radial-gradient(circle at 78% 18%, rgba(74, 154, 120, 0.32) 0 1.5px, transparent 2.5px),        radial-gradient(circle at 34% 72%, rgba(45, 90, 74, 0.28) 0 1.5px, transparent 2.5px),        radial-gradient(circle at 91% 64%, rgba(196, 162, 78, 0.3) 0 1.5px, transparent 2.5px),        radial-gradient(circle at 52% 12%, rgba(74, 154, 120, 0.26) 0 1.5px, transparent 2.5px);    animation: up-chain-dust 6s ease-in-out infinite alternate;}.up-signin-chain-wire {    position: absolute;    left: calc(100% / 14);    right: calc(100% / 14);    top: 36px;    height: 4px;    z-index: 0;    pointer-events: none;}.up-signin-chain-wire-base {    position: absolute;    inset: 0;    border-radius: 999px;    background: rgba(30, 27, 22, 0.1);}.up-signin-chain-wire-glow {    position: absolute;    left: 0;    top: -2px;    height: 8px;    width: calc(var(--track-pct, 0) * 1%);    border-radius: 999px;    background: linear-gradient(        90deg,        rgba(45, 90, 74, 0.5) 0%,        var(--ps-success) 45%,        #E8D48A 100%    );    box-shadow:        0 0 14px rgba(74, 154, 120, 0.55),        0 0 28px rgba(74, 154, 120, 0.22);    transition: width 0.55s var(--ps-ease);    animation: up-chain-wire-pulse 2.4s ease-in-out infinite;}.up-signin-chain-mote {    position: absolute;    top: 50%;    left: 0;    width: 9px;    height: 9px;    margin: -4.5px 0 0 -4.5px;    border-radius: 50%;    background: #FFF6D6;    box-shadow:        0 0 10px rgba(255, 246, 214, 1),        0 0 22px rgba(74, 154, 120, 0.65),        0 0 36px rgba(196, 162, 78, 0.35);    opacity: 0;    animation: up-chain-mote 2.6s ease-in-out infinite;}.up-signin-chain-days {    list-style: none;    margin: 0;    padding: 0 2px;    display: grid;    grid-template-columns: repeat(7, minmax(0, 1fr));    gap: 0;    position: relative;    z-index: 1;}.up-signin-chain-day {    display: flex;    flex-direction: column;    align-items: center;    gap: 8px;    min-width: 0;}.up-signin-chain-node {    position: relative;    width: 52px;    height: 52px;    display: grid;    place-items: center;}.up-signin-chain-ripple {    position: absolute;    inset: 2px;    border-radius: 50%;    border: 2px solid rgba(45, 90, 74, 0.45);    opacity: 0;    pointer-events: none;}.up-signin-chain-ripple--b {    inset: -4px;    border-color: rgba(196, 162, 78, 0.38);}.up-signin-chain-bead {    position: relative;    z-index: 1;    width: 36px;    height: 36px;    border-radius: 50%;    display: grid;    place-items: center;    background:        radial-gradient(circle at 32% 28%, rgba(255, 255, 255, 0.98) 0%, rgba(245, 239, 230, 0.9) 55%, rgba(230, 222, 210, 0.95) 100%);    border: 2.5px solid rgba(154, 123, 47, 0.28);    box-shadow:        0 0 0 3px var(--ps-surface),        0 4px 14px rgba(30, 27, 22, 0.1);    overflow: hidden;    transition: transform 0.35s var(--ps-ease), box-shadow 0.35s, border-color 0.35s;}.up-signin-chain-bead-shine {    position: absolute;    inset: -40%;    background: linear-gradient(120deg, transparent 42%, rgba(255, 255, 255, 0.75) 50%, transparent 58%);    animation: up-chain-shine 4.2s ease-in-out infinite;    pointer-events: none;}.up-signin-chain-bead-num {    position: relative;    z-index: 1;    font-size: 15px;    font-weight: 800;    font-variant-numeric: tabular-nums;    letter-spacing: -0.03em;    line-height: 1;    color: var(--ps-ink-muted);    transition: color 0.35s;}.up-signin-chain-wd {    font-size: 11px;    font-weight: 700;    letter-spacing: 0.06em;    line-height: 1;    color: var(--ps-ink-faint);    transition: color 0.35s;}.up-signin-chain-day.is-done .up-signin-chain-bead {    background: radial-gradient(circle at 30% 25%, #8FD4B4 0%, var(--ps-success) 52%, #2D5A4A 100%);    border-color: rgba(255, 255, 255, 0.4);    box-shadow:        0 0 0 3px var(--ps-surface),        0 0 18px rgba(45, 90, 74, 0.45),        0 0 36px rgba(45, 90, 74, 0.15);    animation: up-chain-bead-pop 0.5s cubic-bezier(0.22, 1, 0.36, 1) backwards;}.up-signin-chain-day.is-done .up-signin-chain-bead-num {    color: rgba(255, 255, 255, 0.98);    text-shadow: 0 1px 3px rgba(45, 90, 74, 0.35);}.up-signin-chain-day.is-done .up-signin-chain-wd {    color: var(--ps-success);    font-weight: 800;}.up-signin-chain-day:nth-child(1).is-done .up-signin-chain-bead { animation-delay: 0.04s; }.up-signin-chain-day:nth-child(2).is-done .up-signin-chain-bead { animation-delay: 0.08s; }.up-signin-chain-day:nth-child(3).is-done .up-signin-chain-bead { animation-delay: 0.12s; }.up-signin-chain-day:nth-child(4).is-done .up-signin-chain-bead { animation-delay: 0.16s; }.up-signin-chain-day:nth-child(5).is-done .up-signin-chain-bead { animation-delay: 0.2s; }.up-signin-chain-day:nth-child(6).is-done .up-signin-chain-bead { animation-delay: 0.24s; }.up-signin-chain-day:nth-child(7).is-done .up-signin-chain-bead { animation-delay: 0.28s; }.up-signin-chain-day.is-today .up-signin-chain-node {    width: 58px;    height: 58px;}.up-signin-chain-day.is-today .up-signin-chain-bead {    width: 42px;    height: 42px;    border-color: rgba(45, 90, 74, 0.55);    box-shadow:        0 0 0 3px var(--ps-surface),        0 0 0 6px rgba(45, 90, 74, 0.14),        0 0 24px rgba(74, 154, 120, 0.42),        0 0 40px rgba(196, 162, 78, 0.15);}.up-signin-chain-day.is-today .up-signin-chain-bead-num {    font-size: 17px;    color: var(--ps-ink);}.up-signin-chain-day.is-today .up-signin-chain-wd {    color: var(--ps-accent);    font-weight: 800;    font-size: 12px;}.up-signin-chain-day.is-today .up-signin-chain-ripple {    animation: up-chain-ripple 2.4s ease-out infinite;}.up-signin-chain-day.is-today .up-signin-chain-ripple--b {    animation: up-chain-ripple 2.4s ease-out 0.55s infinite;}.up-signin-chain-day.is-today.is-done .up-signin-chain-bead-num {    color: rgba(255, 255, 255, 0.98);}.up-signin-chain-day.is-future {    opacity: 0.42;}.up-signin-chain-day.is-future .up-signin-chain-bead {    border-style: dashed;    background: rgba(255, 253, 249, 0.35);    box-shadow: 0 0 0 3px var(--ps-surface);}.up-signin-chain-day.is-future .up-signin-chain-bead-shine {    animation: none;    opacity: 0.2;}.up-daily-panel--signin.is-ready .up-signin-chain-wire-glow {    animation-duration: 1.6s;    box-shadow:        0 0 18px rgba(74, 154, 120, 0.65),        0 0 36px rgba(74, 154, 120, 0.28);}.up-daily-panel--signin.is-ready .up-signin-chain-mote {    animation-duration: 1.8s;}.up-daily-panel--signin.is-ready .up-signin-chain-day.is-today:not(.is-done) .up-signin-chain-bead {    animation: up-chain-today-pulse 2s ease-in-out infinite;}.up-daily-panel--signin.is-ready .up-daily-loot--signin {    border-color: rgba(45, 90, 74, 0.14);    background: linear-gradient(180deg, rgba(45, 90, 74, 0.04) 0%, var(--ps-surface) 100%);}.up-daily-panel--signin.is-ready .up-daily-foot-kicker:not(.is-claimed) {    color: var(--ps-accent);    background: rgba(45, 90, 74, 0.1);    border-color: rgba(45, 90, 74, 0.18);}@keyframes up-chain-dust {    0% { opacity: 0.35; transform: translateY(0); }    100% { opacity: 0.65; transform: translateY(-2px); }}@keyframes up-chain-wire-pulse {    0%, 100% { filter: brightness(1); }    50% { filter: brightness(1.12); }}@keyframes up-chain-mote {    0% { left: 0%; opacity: 0; transform: scale(0.6); }    8% { opacity: 1; transform: scale(1); }    92% { opacity: 1; transform: scale(1); }    100% { left: calc(var(--track-pct, 0) * 1%); opacity: 0; transform: scale(0.5); }}@keyframes up-chain-shine {    0%, 100% { transform: translateX(-70%) rotate(18deg); }    50% { transform: translateX(70%) rotate(18deg); }}@keyframes up-chain-bead-pop {    0% { transform: scale(0.5); opacity: 0.4; }    70% { transform: scale(1.15); }    100% { transform: scale(1); opacity: 1; }}@keyframes up-chain-ripple {    0% { transform: scale(0.75); opacity: 0.75; }    100% { transform: scale(1.45); opacity: 0; }}@keyframes up-chain-today-pulse {    0%, 100% {        box-shadow:            0 0 0 3px var(--ps-surface),            0 0 0 6px rgba(45, 90, 74, 0.12),            0 0 20px rgba(74, 154, 120, 0.35);    }    50% {        box-shadow:            0 0 0 3px var(--ps-surface),            0 0 0 8px rgba(45, 90, 74, 0.2),            0 0 32px rgba(74, 154, 120, 0.55),            0 0 48px rgba(196, 162, 78, 0.2);    }}@media (prefers-reduced-motion: reduce) {    .up-signin-chain-dust,    .up-signin-chain-wire-glow,    .up-signin-chain-mote,    .up-signin-chain-bead-shine,    .up-signin-chain-day.is-today .up-signin-chain-ripple,    .up-signin-chain-day.is-done .up-signin-chain-bead,    .up-daily-panel--signin.is-ready .up-signin-chain-day.is-today:not(.is-done) .up-signin-chain-bead {        animation: none;    }}.up-daily-loot {    min-height: var(--daily-loot-h);    margin: 0;    padding: 8px 12px;    border-radius: var(--ps-radius-sm);    background: var(--ps-surface-2);    border: 1px solid var(--ps-border);    box-sizing: border-box;}.up-daily-loot.is-collapsed {    display: flex;    flex-wrap: nowrap;    align-items: center;    justify-content: space-between;    gap: 10px 12px;    background: linear-gradient(135deg, rgba(154, 123, 47, 0.05) 0%, var(--ps-surface-2) 58%);    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);}.up-daily-loot.is-collapsed:not(:has(.up-daily-loot-more)) {    align-items: center;}.up-daily-loot.is-muted {    background: var(--ps-surface-2);    border-style: dashed;    border-color: rgba(30, 27, 22, 0.08);}.up-daily-loot-summary {    flex: 1 1 160px;    min-width: 0;}.up-daily-loot.is-collapsed > .up-daily-loot-tags {    flex: 1 1 auto;    min-width: 0;    width: auto;}.up-daily-loot-tags {    display: flex;    flex-wrap: wrap;    align-items: center;    gap: 6px;}.up-daily-loot-tags.is-punch {    flex-wrap: nowrap;    align-items: center;    gap: 8px;}.up-daily-loot-tags-main {    display: flex;    flex-wrap: wrap;    align-items: center;    gap: 6px;    flex: 1;    min-width: 0;}.up-daily-loot-tags.is-punch > .up-daily-loot-tag.is-end {    margin-left: 0;    flex-shrink: 0;}.up-daily-loot-tag.is-end {    margin-left: auto;}.up-daily-loot-tag {    display: inline-flex;    align-items: center;    gap: 5px;    min-height: 28px;    padding: 0 10px;    border-radius: 8px;    font-size: 12px;    font-weight: 700;    line-height: 1;    letter-spacing: 0.01em;    color: var(--ps-ink-muted);    background: var(--ps-surface);    border: 1px solid var(--ps-border);    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.65);    white-space: nowrap;    font-variant-numeric: tabular-nums;}.up-daily-loot-tag em {    font-style: normal;    font-size: 10px;    font-weight: 800;    letter-spacing: 0.06em;    opacity: 0.88;}.up-daily-loot-tag.is-kicker {    color: var(--ps-gold);    background: linear-gradient(135deg, rgba(196, 162, 78, 0.16) 0%, rgba(196, 162, 78, 0.08) 100%);    border-color: rgba(154, 123, 47, 0.22);}.up-daily-loot-tag.is-kicker.is-claimed {    color: var(--ps-accent);    background: linear-gradient(135deg, rgba(45, 90, 74, 0.12) 0%, rgba(45, 90, 74, 0.06) 100%);    border-color: rgba(45, 90, 74, 0.18);}.up-daily-loot-tag.is-kicker.is-punch {    color: var(--ps-gold);}.up-daily-loot-tag.is-gold {    color: #8B6914;    background: linear-gradient(135deg, rgba(196, 162, 78, 0.18) 0%, rgba(255, 246, 214, 0.55) 100%);    border-color: rgba(154, 123, 47, 0.2);}.up-daily-loot-tag.is-diamond {    color: var(--ps-sapphire);    background: linear-gradient(135deg, rgba(61, 90, 128, 0.12) 0%, rgba(61, 90, 128, 0.05) 100%);    border-color: rgba(61, 90, 128, 0.18);}.up-daily-loot-tag.is-item {    color: var(--ps-accent);    background: linear-gradient(135deg, rgba(45, 90, 74, 0.12) 0%, rgba(45, 90, 74, 0.05) 100%);    border-color: rgba(45, 90, 74, 0.16);}.up-daily-loot-tag.is-cycle {    color: var(--ps-ink);    background: var(--ps-surface);    border-color: rgba(30, 27, 22, 0.1);}.up-daily-loot-tags.is-punch > .up-daily-loot-tag.is-cycle {    color: var(--ps-sapphire);    background: linear-gradient(135deg, rgba(61, 90, 128, 0.14) 0%, rgba(61, 90, 128, 0.06) 100%);    border-color: rgba(61, 90, 128, 0.22);}.up-daily-loot-tag.is-offline {    color: var(--ps-accent);    background: rgba(45, 90, 74, 0.08);    border-color: rgba(45, 90, 74, 0.14);}.up-daily-loot-tag.is-more {    color: var(--ps-ink-faint);    background: rgba(30, 27, 22, 0.04);    border-style: dashed;    border-color: rgba(30, 27, 22, 0.12);    font-size: 11px;}.up-daily-loot-tag.is-muted {    color: var(--ps-ink-muted);    background: transparent;    border-style: dashed;    border-color: rgba(30, 27, 22, 0.1);    font-weight: 600;}.up-daily-loot--signin {    display: grid;    grid-template-columns: minmax(0, 1fr) auto;    align-items: center;    gap: 10px 12px;    min-height: var(--daily-loot-h);    padding: 10px 12px;    background: var(--ps-surface);    border: 1px solid var(--ps-border);    box-sizing: border-box;}.up-daily-loot-preview {    display: flex;    flex-wrap: wrap;    align-items: center;    gap: 6px;    min-width: 0;}.up-daily-loot-more {    min-height: 32px;    padding: 0 14px;    font-size: 12px;    font-weight: 700;    white-space: nowrap;    flex-shrink: 0;    color: var(--ps-ink-muted);    background: var(--ps-surface-2);    border-color: var(--ps-border);    box-shadow: none;    transition:        background 0.15s var(--ps-ease),        border-color 0.15s var(--ps-ease),        color 0.15s var(--ps-ease);}.up-daily-loot-more:hover {    color: var(--ps-accent);    background: var(--ps-accent-soft);    border-color: rgba(45, 90, 74, 0.18);}.up-daily-loot-more:active {    transform: translateY(1px);}.up-daily-panel--signin.is-done .up-daily-loot-more {    color: var(--ps-success);}.up-daily-panel--signin.is-done .up-daily-loot-more:hover {    color: var(--ps-success);    background: rgba(58, 107, 82, 0.1);    border-color: rgba(58, 107, 82, 0.18);}.up-daily-loot-empty {    margin: 0 0 16px;    padding: 12px 14px;    border-radius: var(--ps-radius-sm);    font-size: 12px;    line-height: 1.5;    color: var(--ps-ink-muted);    background: var(--ps-surface-2);    border: 1px dashed rgba(30, 27, 22, 0.1);}/* ?? Signin reward detail modal ?? */.ps-signin-reward-detail .ps-modal-panel {    width: min(100%, 420px);}.ps-signin-reward-detail-panel {    position: relative;    overflow: hidden;    background: var(--ps-surface);    border-color: rgba(30, 27, 22, 0.1);    box-shadow: 0 24px 64px rgba(30, 27, 22, 0.14);}.ps-signin-reward-detail-close svg {    width: 16px;    height: 16px;}.ps-signin-reward-detail-stamp {    position: absolute;    top: 52px;    right: 52px;    z-index: 2;    padding: 2px 8px;    border: 2px double rgba(110, 102, 92, 0.34);    border-radius: 3px;    font-size: 11px;    font-weight: 900;    letter-spacing: 0.14em;    text-indent: 0.14em;    color: rgba(110, 102, 92, 0.38);    background: rgba(255, 252, 248, 0.72);    transform: rotate(-12deg);    pointer-events: none;}.ps-signin-reward-detail-stamp[hidden] {    display: none !important;}.ps-signin-reward-detail-head {    padding: 20px 22px 16px;}.ps-signin-reward-detail-hero {    display: flex;    align-items: flex-start;    gap: 14px;    padding-right: 28px;}.ps-signin-reward-detail-tier {    flex-shrink: 0;    width: 48px;    height: 48px;    display: grid;    place-items: center;    border-radius: 50%;    background: var(--ps-gold-soft);    border: 3px solid #fff;    box-shadow: 0 4px 14px rgba(154, 123, 47, 0.16);}.ps-signin-reward-detail-tier span {    font-size: 18px;    font-weight: 800;    color: var(--ps-gold);    line-height: 1;}.ps-signin-reward-detail-panel.is-claimed .ps-signin-reward-detail-tier {    background: #C8D2CC;    box-shadow: 0 2px 8px rgba(30, 27, 22, 0.08);}.ps-signin-reward-detail-panel.is-claimed .ps-signin-reward-detail-tier span {    color: #5E6F66;}.ps-signin-reward-detail-panel.is-pending .ps-signin-reward-detail-tier {    background: var(--ps-accent-soft);    box-shadow: 0 0 0 4px rgba(45, 90, 74, 0.1);}.ps-signin-reward-detail-panel.is-pending .ps-signin-reward-detail-tier span {    color: var(--ps-accent);}.ps-signin-reward-detail-kicker {    margin: 0 0 4px;    font-size: 10px;    font-weight: 700;    letter-spacing: 0.12em;    text-transform: uppercase;    color: var(--ps-gold);}.ps-signin-reward-detail-title {    margin: 0;    font-size: 18px;    font-weight: 800;    letter-spacing: -0.02em;    line-height: 1.2;    color: var(--ps-ink);}.ps-signin-reward-detail-meta {    margin: 6px 0 0;    font-size: 12px;    line-height: 1.45;    color: var(--ps-ink-muted);}.ps-signin-reward-detail-body {    padding: 0 22px 18px;}.ps-signin-reward-detail-count {    margin: 0 0 10px;    font-size: 11px;    font-weight: 700;    letter-spacing: 0.06em;    color: var(--ps-ink-faint);}.ps-signin-reward-detail-list {    list-style: none;    margin: 0;    padding: 0;    display: flex;    flex-direction: column;    gap: 8px;    max-height: min(52vh, 320px);    overflow: auto;}.ps-signin-reward-detail-item {    display: grid;    grid-template-columns: auto 1fr;    align-items: center;    gap: 10px;    padding: 12px 14px;    border-radius: var(--ps-radius-sm);    background: var(--ps-surface-2);    border: 1px solid var(--ps-border);}.ps-signin-reward-detail-tag {    display: inline-flex;    align-items: center;    min-height: 22px;    padding: 0 8px;    border-radius: 999px;    font-size: 10px;    font-weight: 700;    letter-spacing: 0.03em;    color: var(--ps-ink-muted);    background: var(--ps-surface);    border: 1px solid var(--ps-border);}.ps-signin-reward-detail-item.is-gold .ps-signin-reward-detail-tag {    color: var(--ps-gold);    background: var(--ps-gold-soft);    border-color: rgba(154, 123, 47, 0.14);}.ps-signin-reward-detail-item.is-diamond .ps-signin-reward-detail-tag {    color: var(--ps-sapphire);    background: var(--ps-sapphire-soft);    border-color: rgba(61, 90, 128, 0.14);}.ps-signin-reward-detail-item.is-item .ps-signin-reward-detail-tag {    color: var(--ps-accent);    background: var(--ps-accent-soft);    border-color: rgba(45, 90, 74, 0.12);}.ps-signin-reward-detail-name {    font-size: 13px;    font-weight: 700;    color: var(--ps-ink);    word-break: break-word;}.ps-signin-reward-detail-foot {    padding: 0 22px 20px;}.ps-signin-reward-detail-btn {    width: 100%;    min-height: var(--ps-touch);    border-radius: 999px;    font-size: 13px;    font-weight: 700;    color: #fff;    background: var(--ps-accent);    box-shadow: 0 8px 18px rgba(45, 90, 74, 0.18);    transition: background 0.15s;}.ps-signin-reward-detail-btn:hover {    background: var(--ps-accent-hover);}.up-daily-punch-body {    display: grid;    grid-template-columns: auto minmax(0, 1fr);    gap: 18px;    align-items: center;    margin-bottom: 16px;}.up-daily-punch-facts li {    display: flex;    align-items: baseline;    justify-content: space-between;    gap: 12px;    padding-bottom: 10px;    border-bottom: 1px solid var(--ps-border);    font-size: 12px;}.up-daily-punch-facts li:last-child {    padding-bottom: 0;    border-bottom: none;}.up-daily-punch-facts span {    color: var(--ps-ink-faint);    font-weight: 600;}.up-daily-punch-facts strong {    font-variant-numeric: tabular-nums;    font-weight: 800;    color: var(--ps-ink);    text-align: right;}.up-daily-panel-foot {    display: flex;    flex-wrap: wrap;    align-items: center;    justify-content: space-between;    gap: 12px;    margin-top: auto;    padding-top: 14px;    border-top: 1px solid var(--ps-border);}.up-daily-foot-kicker {    display: inline-flex;    align-items: center;    flex: 0 0 auto;    min-height: 28px;    padding: 0 10px;    border-radius: 8px;    font-size: 12px;    font-weight: 700;    line-height: 1;    letter-spacing: 0.02em;    color: var(--ps-gold);    background: linear-gradient(135deg, rgba(196, 162, 78, 0.16) 0%, rgba(196, 162, 78, 0.08) 100%);    border: 1px solid rgba(154, 123, 47, 0.22);    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.65);    white-space: nowrap;}.up-daily-foot-kicker.is-claimed {    color: var(--ps-accent);    background: linear-gradient(135deg, rgba(45, 90, 74, 0.12) 0%, rgba(45, 90, 74, 0.06) 100%);    border-color: rgba(45, 90, 74, 0.18);}.up-daily-foot-kicker.is-punch {    color: var(--ps-gold);}.up-daily-panel--signin.is-ready .up-daily-status,.up-daily-panel--punch.is-ready .up-daily-status {    display: none;}.up-daily-panel--signin.is-ready .up-daily-panel-foot,.up-daily-panel--punch.is-ready .up-daily-panel-foot {    gap: 12px;    padding-top: 12px;    justify-content: space-between;}.up-daily-status {    margin: 0;    flex: 1 1 auto;    min-width: 0;    font-size: 12px;    line-height: 1.45;    color: var(--ps-ink-muted);    font-variant-numeric: tabular-nums;}.up-daily-form {    flex: 0 0 auto;    margin-left: auto;}.up-daily-btn {    display: inline-flex;    align-items: center;    justify-content: center;    min-width: 112px;    min-height: var(--ps-touch);    padding: 0 20px;    border-radius: 999px;    font-size: 13px;    font-weight: 700;    letter-spacing: 0.02em;    color: #fff;    background: var(--ps-accent);    box-shadow: 0 8px 18px rgba(45, 90, 74, 0.2);    transition: background 0.15s, transform 0.15s var(--ps-ease), box-shadow 0.15s;}.up-daily-btn:hover:not(:disabled) {    background: var(--ps-accent-hover);    transform: translateY(-1px);}.up-daily-btn:active:not(:disabled) {    transform: translateY(0);}.up-daily-btn:disabled {    opacity: 0.45;    cursor: not-allowed;    box-shadow: none;    transform: none;}.up-daily-panel--signin.is-ready .up-daily-btn:not(:disabled) {    animation: up-signin-btn-glow 3.2s ease-in-out infinite;}@keyframes up-signin-btn-glow {    0%, 100% { box-shadow: 0 8px 18px rgba(45, 90, 74, 0.2); }    50% { box-shadow: 0 10px 24px rgba(45, 90, 74, 0.32), 0 0 0 4px rgba(45, 90, 74, 0.07); }}@media (prefers-reduced-motion: reduce) {    .up-daily-panel--signin.is-ready .up-daily-btn:not(:disabled) {        animation: none;    }}.up-daily-panel .ps-notice {    margin: 0;}/* ?? Checkin currency trend chart ?? */.up-daily-trend {    padding: 18px 20px 16px;    border-radius: var(--ps-radius-xl);    background: var(--ps-surface);    border: 1px solid var(--ps-border);    box-shadow: var(--ps-shadow-sm);}.up-daily-trend-head {    display: flex;    flex-wrap: wrap;    align-items: flex-end;    justify-content: space-between;    gap: 12px 16px;    margin-bottom: 14px;}.up-daily-trend-intro h2 {    margin: 0;    font-size: 17px;    font-weight: 800;    letter-spacing: -0.02em;    color: var(--ps-ink);}.up-daily-trend-intro .ps-kicker {    margin-bottom: 4px;}.up-daily-trend-meta {    display: flex;    flex-wrap: wrap;    align-items: center;    gap: 8px;}.up-daily-trend-legend {    display: inline-flex;    align-items: center;    gap: 6px;    font-size: 11px;    font-weight: 600;    color: var(--ps-ink-faint);}.up-daily-trend-legend i {    width: 8px;    height: 8px;    border-radius: 50%;    background: var(--ps-accent);    opacity: 0.55;}.up-daily-trend-tag {    display: inline-flex;    align-items: center;    gap: 6px;    min-height: 28px;    padding: 0 10px;    border-radius: 999px;    font-size: 11px;    font-weight: 600;    border: 1px solid var(--ps-border);    background: var(--ps-surface-2);}.up-daily-trend-tag strong {    font-size: 12px;    font-weight: 800;    font-variant-numeric: tabular-nums;}.up-daily-trend-tag.is-signin {    color: var(--ps-accent);    border-color: rgba(45, 90, 74, 0.2);    background: rgba(45, 90, 74, 0.08);}.up-daily-trend-tag.is-punch {    color: var(--ps-gold);    border-color: rgba(154, 123, 47, 0.22);    background: rgba(196, 162, 78, 0.1);}.up-daily-trend-tag.is-signin {
    color: var(--ps-accent);
    border-color: rgba(45, 90, 74, 0.2);
    background: rgba(45, 90, 74, 0.08);
}

.up-daily-trend-tag.is-punch {
    color: var(--ps-gold);
    border-color: rgba(154, 123, 47, 0.22);
    background: rgba(196, 162, 78, 0.1);
}

.up-daily-trend-tag.is-gold {    color: var(--ps-gold);    border-color: rgba(154, 123, 47, 0.22);    background: rgba(196, 162, 78, 0.1);}.up-daily-trend-tag.is-diamond {    color: var(--ps-sapphire);    border-color: rgba(61, 90, 128, 0.2);    background: rgba(61, 90, 128, 0.08);}.up-daily-trend-chart {    position: relative;    height: min(42vh, 320px);    min-height: 240px;}.up-daily-trend-chart canvas {    display: block;    width: 100% !important;    height: 100% !important;}.up-daily-trend-chart canvas[hidden] {    display: none !important;}.up-daily-trend-loading,.up-daily-trend-error {    position: absolute;    inset: 0;    display: grid;    place-items: center;    margin: 0;    font-size: 13px;    color: var(--ps-ink-muted);    background: rgba(255, 252, 248, 0.72);    border-radius: var(--ps-radius-sm);}.up-daily-trend-loading[hidden],.up-daily-trend-error[hidden] {    display: none !important;}.up-daily-trend-error {    color: var(--ps-danger);}/* ?? Timeline ?? */.ps-timeline { display: flex; flex-direction: column; gap: 12px; }.ps-timeline-item {    padding: 20px;    border-radius: var(--ps-radius);    background: var(--ps-surface);    border: 1px solid var(--ps-border);    box-shadow: var(--ps-shadow-sm);}.ps-timeline-item time { font-size: 11px; color: var(--ps-ink-faint); font-variant-numeric: tabular-nums; }.ps-timeline-item h3 { margin: 8px 0 0; font-size: 17px; font-weight: 700; letter-spacing: -0.02em; }.ps-timeline-body { margin-top: 12px; font-size: 14px; line-height: 1.7; color: var(--ps-ink-muted); word-break: break-word; }/* ?? Account ?? */.ps-account-hero {    display: flex;    align-items: center;    gap: 18px;    padding: 24px;    border-radius: var(--ps-radius-xl);    background: var(--ps-surface);    border: 1px solid var(--ps-border);    box-shadow: var(--ps-shadow-sm);}.ps-account-avatar {    width: 72px;    height: 72px;    border-radius: 20px;    background: linear-gradient(145deg, var(--ps-accent), var(--ps-accent-hover));    color: #fff;    display: grid;    place-items: center;    font-size: 28px;    font-weight: 700;    flex-shrink: 0;    box-shadow: 0 12px 28px rgba(45, 90, 74, 0.25);}.ps-account-hero h1 { margin: 0; font-size: 24px; font-weight: 700; letter-spacing: -0.02em; }.ps-account-hero p { margin: 4px 0 10px; color: var(--ps-ink-muted); font-size: 13px; }.ps-account-balances { display: flex; flex-wrap: wrap; gap: 14px; font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }.ps-account-balances .is-gold { color: var(--ps-gold); }.ps-account-balances .is-diamond { color: var(--ps-sapphire); }.ps-account-cols { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 14px; }.ps-dl { margin: 0; }.ps-dl div {    display: flex;    justify-content: space-between;    gap: 16px;    padding: 12px 0;    border-bottom: 1px solid var(--ps-border);    font-size: 13px;}.ps-dl dt { color: var(--ps-ink-muted); margin: 0; font-weight: 500; }.ps-dl dd { margin: 0; font-weight: 600; text-align: right; word-break: break-all; }/* ?? Auth ?? */.ps-auth-body { height: 100%; background: var(--ps-bg); }.ps-auth-shell {    height: 100%;    max-height: 100dvh;    overflow: hidden;    display: grid;    grid-template-columns: 1.05fr 0.95fr;}.ps-auth-visual {    position: relative;    display: flex;    align-items: center;    padding: clamp(32px, 6vw, 64px);    background:        radial-gradient(circle at 20% 20%, rgba(255,255,255,0.08), transparent 40%),        linear-gradient(155deg, #1a3d32 0%, var(--ps-accent) 45%, #234539 100%);    color: #fff;    overflow: hidden;}.ps-auth-visual::before {    content: '';    position: absolute;    inset: 0;    background: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");    opacity: 0.5;}.ps-auth-visual-inner { position: relative; max-width: 420px; }.ps-auth-visual-inner h1 { font-size: clamp(36px, 6vw, 48px); line-height: 1.05; margin: 18px 0; letter-spacing: -0.03em; font-weight: 700; }.ps-auth-visual-inner h1 em { font-style: normal; opacity: 0.75; display: block; margin-top: 8px; }.ps-auth-visual-inner p { opacity: 0.82; line-height: 1.65; font-size: 15px; }.ps-auth-tag {    display: inline-flex;    align-items: center;    gap: 6px;    font-size: 11px;    font-weight: 700;    letter-spacing: 0.08em;    text-transform: uppercase;    padding: 8px 12px;    border-radius: 999px;    background: rgba(255, 255, 255, 0.12);    backdrop-filter: blur(8px);}.ps-auth-panel {    display: flex;    flex-direction: column;    justify-content: center;    align-items: center;    min-height: 0;    overflow-x: hidden;    overflow-y: auto;    -webkit-overflow-scrolling: touch;    padding: 32px 24px;}.ps-auth-card {    width: 100%;    max-width: 420px;    padding: 32px 28px;    border-radius: var(--ps-radius-xl);    background: var(--ps-surface);    border: 1px solid var(--ps-border);    box-shadow: var(--ps-shadow-lg);}.ps-auth-title { margin: 0; font-size: 26px; font-weight: 700; letter-spacing: -0.02em; }.ps-auth-sub { margin: 8px 0 24px; color: var(--ps-ink-muted); font-size: 14px; }.ps-auth-links { margin-top: 18px; text-align: center; font-size: 13px; }.ps-auth-links a { color: var(--ps-accent); font-weight: 600; }.ps-auth-foot { margin-top: 28px; font-size: 12px; color: var(--ps-ink-faint); }/* ?? Responsive ?? */@media (max-width: 1024px) {    .ps-layout {        grid-template-columns: 1fr;        height: 100%;        max-height: 100dvh;    }    .ps-side {        position: fixed;        left: 0;        top: 0;        height: 100dvh;        max-height: 100dvh;        width: min(288px, 88vw);        transform: translateX(-108%);        transition: transform 0.35s var(--ps-ease);        z-index: 45;        box-shadow: var(--ps-shadow-lg);    }    .ps-layout.is-side-open .ps-side { transform: translateX(0); }    .ps-icon-btn { display: inline-flex; }    .ps-topbar { padding: 10px 14px; }    .ps-wallet-pill { display: none; }    .ps-profile-meta { display: none; }    .ps-profile-chip { padding: 4px; border-radius: 12px; }    .ps-main { padding: 16px 14px calc(16px + env(safe-area-inset-bottom)); }    .ps-bento { grid-template-columns: 1fr; }    .ps-bento-hero { grid-row: auto; }    .ps-home-split, .ps-account-cols { grid-template-columns: 1fr; }    .ps-grid-4, .ps-grid-3 { grid-template-columns: repeat(2, 1fr); }    .ps-shortcuts { grid-template-columns: repeat(2, 1fr); }    .up-daily-masthead {        grid-template-columns: 1fr;        align-items: start;    }    .up-daily-board {        grid-template-columns: 1fr;        align-items: start;    }    .up-daily-panel {        min-height: 0;    }    .up-daily-panel-body {        flex: 0 0 auto;        min-height: 0;        grid-template-rows: auto auto;    }    .up-daily-panel-head {        min-height: 0;    }    .up-daily-panel-foot {        flex-direction: row;        flex-wrap: wrap;        align-items: center;        justify-content: space-between;        margin-top: 12px;    }    .up-daily-form {        margin-left: auto;        flex-shrink: 0;    }    .up-daily-btn {        width: auto;    }    .up-daily-panel--signin.is-ready .up-daily-panel-foot,    .up-daily-panel--punch.is-ready .up-daily-panel-foot {        justify-content: space-between;    }    .up-daily-loot--signin {        grid-template-columns: 1fr;        gap: 8px;        padding: 10px;    }    .up-daily-loot-more {        width: 100%;        min-height: var(--ps-touch);    }    .up-daily-loot--signin {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 10px;
    }

    .up-daily-loot-more {
    width: 100%;
    min-height: var(--ps-touch);
    }

    .up-daily-loot.is-collapsed {        flex-direction: row;        flex-wrap: wrap;        align-items: center;        gap: 6px 8px;        padding: 8px 10px;    }    .up-daily-loot.is-collapsed > .up-daily-loot-tags {        flex: 1 1 auto;        width: auto;        min-width: 0;    }    .up-daily-loot.is-collapsed .up-daily-loot-tag.is-more {        display: none;    }    .up-daily-loot-tag {        font-size: 11px;        min-height: 26px;        padding: 0 8px;    }    .up-gift-row {        grid-template-columns: 1fr;        align-items: stretch;        gap: 12px;        padding: 16px 16px;    }    .up-gift-card-head {
        align-items: center;
    }

    .up-gift-card-title-wrap {
    flex-direction: column;
        align-items: flex-start;
        gap: 2px;
    }

    .up-gift-loot-summary {
        white-space: normal;
    }

    .up-gift-card-foot {
    flex-direction: column;
        align-items: stretch;
    gap: 8px;
    }

    .up-gift-card-foot form {
        width: 100%;
    }

    .up-gift-card-foot .up-gift-claim-btn {
        width: 100%;
        min-height: var(--ps-touch);
    }

    .up-gift-row-act {        width: 100%;        flex-direction: row;        flex-wrap: wrap;        align-items: center;        justify-content: space-between;        min-width: 0;    }    .up-gift-row-quota {        text-align: left;        max-width: none;        flex: 1 1 auto;    }    .up-gift-claim-btn {        flex-shrink: 0;    }    .up-daily-loot-tags.is-punch {        align-items: flex-start;    }    .up-daily-loot-tags.is-punch > .up-daily-loot-tag.is-end {        align-self: center;        margin-top: 0;    }    .ps-auth-shell { grid-template-columns: 1fr; }    .ps-auth-visual { display: none; }    .ps-auth-panel { min-height: 0; justify-content: flex-start; padding-top: 48px; }}@media (max-width: 480px) {    .ps-topbar-title strong { font-size: 15px; }    .ps-shop-grid {        --shop-card-min: 188px;        --shop-grid-gap: 10px;    }    .ps-shop-card-act { grid-template-columns: auto 1fr; }    .up-gift-row-act {        flex-direction: column;        align-items: stretch;    }    .up-gift-row-quota {        text-align: center;    }    .up-gift-claim-btn { width: 100%; }    .up-daily-metrics {        grid-template-columns: repeat(3, minmax(0, 1fr));    }    .up-signin-chain-wire {        top: 26px;    }    .up-signin-chain-day {        gap: 6px;    }    .up-signin-chain-node {        width: 38px;        height: 38px;    }    .up-signin-chain-day.is-today .up-signin-chain-node {        width: 44px;        height: 44px;    }    .up-signin-chain-bead {        width: 28px;        height: 28px;    }    .up-signin-chain-day.is-today .up-signin-chain-bead {        width: 32px;        height: 32px;    }    .up-signin-chain-bead-num {        font-size: 12px;    }    .up-signin-chain-day.is-today .up-signin-chain-bead-num {        font-size: 13px;    }    .up-signin-chain-wd {        font-size: 9px;    }    .up-daily-loot-tag.is-gold {        max-width: 100%;        overflow: hidden;        text-overflow: ellipsis;    }    .up-daily-loot-tags.is-punch > .up-daily-loot-tag.is-end {        font-size: 10px;        padding: 0 7px;    }    .ps-shortcuts { grid-template-columns: 1fr 1fr; }}

/* ?? Home dashboard ?? */

.is-home.ps-page {
    width: 100%;
    gap: 16px;
}

.up-hm-vault {
    position: relative;
    padding: 22px 24px 20px;
    margin-bottom: 0;
    border-radius: var(--ps-radius-xl);
    overflow: hidden;
    background:
        radial-gradient(ellipse 68% 88% at 0% 0%, rgba(45, 90, 74, 0.1) 0%, transparent 58%),
        radial-gradient(ellipse 52% 68% at 100% 100%, rgba(196, 162, 78, 0.12) 0%, transparent 55%),
        linear-gradient(158deg, #FFFCF8 0%, var(--ps-surface) 50%, var(--ps-surface-2) 100%);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
}

.up-hm-vault-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.up-hm-vault-bg::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -18%;
    width: 58%;
    height: 200%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.14), transparent);
    animation: up-gf-vault-sweep 9s ease-in-out infinite;
}

.up-hm-vault-hub {
    position: absolute;
    top: -28px;
    right: -16px;
    width: min(220px, 42vw);
    height: min(220px, 42vw);
    opacity: 0.44;
}

.up-hm-vault-hub-aura {
    position: absolute;
    inset: -10%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(196, 162, 78, 0.24) 0%, rgba(45, 90, 74, 0.1) 48%, transparent 72%);
    animation: up-lt-aura-breathe 4.2s ease-in-out infinite;
}

.up-hm-vault-hub-orbit {
    position: absolute;
    inset: 6%;
    border-radius: 50%;
    border: 1px dashed rgba(154, 123, 47, 0.24);
    animation: up-gf-seal-ring-spin 36s linear infinite;
}

.up-hm-vault-hub-ring {
    position: absolute;
    inset: -2px;
    border-radius: 50%;
    background: conic-gradient(from 0deg, #C4A24E, rgba(45, 90, 74, 0.5), #E8D48A, rgba(196, 162, 78, 0.3), #C4A24E);
    -webkit-mask: radial-gradient(circle, transparent 64%, #000 65%, #000 70%, transparent 71%);
    mask: radial-gradient(circle, transparent 64%, #000 65%, #000 70%, transparent 71%);
    animation: up-lt-rim-chase 3.2s linear infinite;
}

.up-hm-vault-hub-face {
    position: absolute;
    inset: 20%;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-size: clamp(32px, 6vw, 44px);
    font-weight: 800;
    letter-spacing: -0.04em;
    color: var(--ps-accent);
    background: linear-gradient(160deg, rgba(255, 252, 248, 0.96) 0%, rgba(243, 238, 230, 0.88) 100%);
    border: 1px solid rgba(45, 90, 74, 0.18);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.92),
        0 10px 28px rgba(45, 90, 74, 0.12);
}

.is-home .up-hm-vault .ps-kicker {
    color: var(--ps-accent);
}

.up-hm-vault-sub {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 8px 0 0;
    font-size: 13px;
    line-height: 1.45;
    color: var(--ps-ink-muted);
}

.up-hm-tier {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    color: var(--ps-ink-muted);
    background: rgba(30, 27, 22, 0.04);
    border: 1px solid var(--ps-border);
}

.up-hm-tier.is-live {
    color: var(--ps-accent);
    background: var(--ps-accent-soft);
    border-color: rgba(45, 90, 74, 0.16);
}

.up-hm-vault-dot {
    opacity: 0.45;
}

.is-home .up-lt-metric.is-gold strong {
    color: var(--ps-gold);
}

.is-home .up-lt-metric.is-diamond strong {
    color: var(--ps-sapphire);
}

.up-hm-vault-spark {
    position: absolute;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--ps-gold);
    box-shadow: 0 0 10px rgba(154, 123, 47, 0.45);
    animation: up-gf-spark-drift 5s ease-in-out infinite;
    pointer-events: none;
}

.up-hm-vault-spark--a { top: 18%; left: 12%; animation-delay: 0s; }
.up-hm-vault-spark--b { top: 62%; left: 78%; animation-delay: -1.2s; width: 3px; height: 3px; }
.up-hm-vault-spark--c { top: 28%; left: 55%; animation-delay: -2.4s; background: rgba(45, 90, 74, 0.85); box-shadow: 0 0 8px rgba(45, 90, 74, 0.35); }
.up-hm-vault-spark--d { top: 72%; left: 24%; animation-delay: -3.1s; width: 5px; height: 5px; opacity: 0.35; }

.up-hm-vault-dust {
    position: absolute;
    inset: 0;
    opacity: 0.45;
    background-image:
        radial-gradient(circle at 14% 22%, rgba(154, 123, 47, 0.14) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 82% 18%, rgba(45, 90, 74, 0.12) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 56% 68%, rgba(154, 123, 47, 0.1) 0 1px, transparent 2px),
        radial-gradient(circle at 28% 78%, rgba(45, 90, 74, 0.08) 0 1px, transparent 2px);
    animation: up-lt-dust-float 7s ease-in-out infinite alternate;
}

.up-hm-deck {
    position: relative;
    padding: 20px 22px 16px;
    border-radius: var(--ps-radius-xl);
    overflow: hidden;
    background:
        radial-gradient(ellipse 88% 72% at 0% 0%, rgba(45, 90, 74, 0.07) 0%, transparent 54%),
        radial-gradient(ellipse 68% 62% at 100% 100%, rgba(196, 162, 78, 0.1) 0%, transparent 52%),
        linear-gradient(158deg, #FFFCF8 0%, var(--ps-surface) 48%, var(--ps-surface-2) 100%);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
}

.up-hm-deck-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.up-hm-deck-grid {
    position: absolute;
    inset: 0;
    opacity: 0.55;
    background-image:
        linear-gradient(rgba(30, 27, 22, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(30, 27, 22, 0.04) 1px, transparent 1px);
    background-size: 28px 28px;
    mask-image: radial-gradient(ellipse 90% 80% at 50% 40%, #000 18%, transparent 88%);
}

.up-hm-deck-glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(42px);
    opacity: 0.55;
    animation: up-lt-aura-breathe 5s ease-in-out infinite;
}

.up-hm-deck-glow--a {
    top: -12%;
    left: -8%;
    width: 220px;
    height: 220px;
    background: rgba(45, 90, 74, 0.12);
}

.up-hm-deck-glow--b {
    bottom: -18%;
    right: -6%;
    width: 260px;
    height: 260px;
    background: rgba(196, 162, 78, 0.14);
    animation-delay: -2.4s;
}

.up-hm-deck-scan {
    position: absolute;
    top: -70%;
    left: -10%;
    width: 42%;
    height: 240%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.32), transparent);
    animation: up-gf-vault-sweep 12s ease-in-out infinite;
}

.up-hm-deck-head {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px 20px;
    margin-bottom: 16px;
}

.up-hm-deck-intro .ps-kicker {
    margin: 0 0 6px;
    color: var(--ps-gold);
}

.up-hm-deck-intro h2 {
    margin: 0;
    font-size: clamp(20px, 3.6vw, 26px);
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--ps-ink);
}

.up-hm-deck-badge {
    display: grid;
    place-items: center;
    min-width: 58px;
    min-height: 58px;
    padding: 8px 10px;
    border-radius: 16px;
    background: rgba(255, 252, 248, 0.82);
    border: 1px solid var(--ps-border);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.up-hm-deck-badge-num {
    font-size: 22px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.04em;
    color: var(--ps-accent);
}

.up-hm-deck-badge-unit {
    margin-top: 2px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--ps-ink-faint);
}

.up-hm-lanes {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.up-hm-lanes:not(.is-ready) .up-hm-lane {
    opacity: 0.45;
}

.up-hm-deck-loading,
.up-hm-deck-error {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: grid;
    place-items: center;
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--ps-ink-muted);
    background: rgba(255, 252, 248, 0.78);
    border-radius: var(--ps-radius);
    backdrop-filter: blur(4px);
}

.up-hm-deck-loading[hidden],
.up-hm-deck-error[hidden] {
    display: none !important;
}

.up-hm-deck-error {
    color: var(--ps-danger);
}

.up-hm-lane {
    --lane-accent: var(--ps-ink-muted);
    --lane-glow: rgba(45, 90, 74, 0.12);
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(132px, 190px) minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px 16px;
    min-height: 96px;
    padding: 12px 14px 12px 12px;
    border-radius: var(--ps-radius);
    background: rgba(255, 252, 248, 0.72);
    border: 1px solid var(--ps-border);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
    transition: border-color 0.25s, box-shadow 0.25s, transform 0.25s;
}

.up-hm-lane:hover {
    transform: translateY(-1px);
    border-color: var(--ps-border-strong);
    box-shadow: var(--ps-shadow-sm);
}

.up-hm-lane.is-online {
    --lane-accent: var(--ps-accent);
    --lane-glow: rgba(45, 90, 74, 0.16);
    --lane-stroke: rgba(45, 90, 74, 0.2);
    --lane-accent-soft: rgba(45, 90, 74, 0.12);
    --lane-core-mid: rgba(214, 232, 224, 0.95);
    --lane-core-deep: rgba(176, 208, 194, 0.88);
    --lane-rim-a: rgba(45, 90, 74, 0.55);
    --lane-rim-b: rgba(120, 180, 150, 0.38);
    --lane-rim-c: rgba(196, 162, 78, 0.28);
}

.up-hm-lane.is-gold {
    --lane-accent: var(--ps-gold);
    --lane-glow: rgba(196, 162, 78, 0.18);
    --lane-stroke: rgba(154, 123, 47, 0.22);
    --lane-accent-soft: rgba(196, 162, 78, 0.14);
    --lane-core-mid: rgba(248, 236, 210, 0.96);
    --lane-core-deep: rgba(232, 210, 168, 0.9);
    --lane-rim-a: rgba(196, 162, 78, 0.62);
    --lane-rim-b: rgba(154, 123, 47, 0.42);
    --lane-rim-c: rgba(255, 246, 214, 0.32);
}

.up-hm-lane.is-diamond {
    --lane-accent: var(--ps-sapphire);
    --lane-glow: rgba(61, 90, 128, 0.16);
    --lane-stroke: rgba(61, 90, 128, 0.2);
    --lane-accent-soft: rgba(61, 90, 128, 0.12);
    --lane-core-mid: rgba(220, 228, 240, 0.96);
    --lane-core-deep: rgba(190, 204, 224, 0.9);
    --lane-rim-a: rgba(61, 90, 128, 0.55);
    --lane-rim-b: rgba(122, 158, 196, 0.38);
    --lane-rim-c: rgba(180, 210, 240, 0.28);
}

.up-hm-lane.is-shop {
    --lane-accent: #3A6B52;
    --lane-glow: rgba(58, 107, 82, 0.16);
    --lane-stroke: rgba(58, 107, 82, 0.2);
    --lane-accent-soft: rgba(58, 107, 82, 0.12);
    --lane-core-mid: rgba(220, 236, 228, 0.96);
    --lane-core-deep: rgba(190, 216, 202, 0.9);
    --lane-rim-a: rgba(58, 107, 82, 0.55);
    --lane-rim-b: rgba(45, 90, 74, 0.38);
    --lane-rim-c: rgba(120, 180, 150, 0.28);
}

.up-hm-lane.is-lottery {
    --lane-accent: #B85C38;
    --lane-glow: rgba(184, 92, 56, 0.16);
    --lane-stroke: rgba(184, 92, 56, 0.2);
    --lane-accent-soft: rgba(184, 92, 56, 0.12);
    --lane-core-mid: rgba(252, 236, 228, 0.96);
    --lane-core-deep: rgba(240, 210, 196, 0.9);
    --lane-rim-a: rgba(184, 92, 56, 0.58);
    --lane-rim-b: rgba(154, 92, 56, 0.4);
    --lane-rim-c: rgba(232, 180, 150, 0.28);
}

.up-hm-lane-side {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.up-hm-orb {
    position: relative;
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    animation: up-hm-orb-float 4.8s ease-in-out infinite;
}

.up-hm-lane.is-gold .up-hm-orb {
    animation-delay: -1.6s;
}

.up-hm-lane.is-diamond .up-hm-orb {
    animation-delay: -3.2s;
}

.up-hm-lane.is-shop .up-hm-orb {
    animation-delay: -4.8s;
}

.up-hm-lane.is-lottery .up-hm-orb {
    animation-delay: -6.4s;
}

.up-hm-orb-glow {
    position: absolute;
    inset: -7px;
    border-radius: 50%;
    background: radial-gradient(circle, var(--lane-glow) 0%, transparent 70%);
    animation: up-lt-aura-breathe 4.4s ease-in-out infinite;
    pointer-events: none;
}

.up-hm-orb-chase {
    position: absolute;
    inset: -1px;
    border-radius: 50%;
    opacity: 0.65;
    background: conic-gradient(from 0deg, var(--lane-rim-a), var(--lane-rim-b), var(--lane-rim-c), var(--lane-rim-a));
    -webkit-mask: radial-gradient(circle, transparent 66%, #000 67%, #000 69%, transparent 70%);
    mask: radial-gradient(circle, transparent 66%, #000 67%, #000 69%, transparent 70%);
    animation: up-lt-rim-chase 7s linear infinite;
    pointer-events: none;
}

.up-hm-orb-spec {
    position: absolute;
    inset: 1px;
    border-radius: 50%;
    opacity: 0.55;
    background: conic-gradient(from 210deg, transparent 0deg, rgba(255, 255, 255, 0.45) 18deg, transparent 36deg);
    animation: up-hm-orb-spec 6.5s linear infinite;
    pointer-events: none;
    mix-blend-mode: soft-light;
}

.up-hm-orb-core {
    position: absolute;
    inset: 3px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: var(--lane-accent);
    background:
        radial-gradient(circle at 30% 24%, rgba(255, 252, 248, 1) 0%, rgba(255, 252, 248, 0.2) 18%, transparent 36%),
        radial-gradient(circle at 50% 62%, var(--lane-core-mid) 0%, var(--lane-core-deep) 100%);
    border: 1px solid var(--lane-stroke);
    box-shadow:
        inset 0 -4px 8px var(--lane-accent-soft),
        inset 0 1px 0 rgba(255, 255, 255, 0.9),
        0 3px 10px var(--lane-glow);
}

.up-hm-orb-core .layui-icon {
    font-size: 16px;
    line-height: 1;
    filter: drop-shadow(0 1px 0 rgba(255, 255, 255, 0.7));
}

.up-hm-lane:hover .up-hm-orb-core {
    box-shadow:
        inset 0 -4px 8px var(--lane-accent-soft),
        inset 0 1px 0 rgba(255, 255, 255, 0.9),
        0 5px 14px var(--lane-glow);
}

@keyframes up-hm-orb-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-2px); }
}

@keyframes up-hm-orb-spec {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.up-hm-lane-copy {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.up-hm-lane-copy strong {
    font-size: 13px;
    font-weight: 700;
    color: var(--ps-ink);
}

.up-hm-lane-copy span {
    font-size: 11px;
    line-height: 1.35;
    color: var(--ps-ink-muted);
}

.up-hm-lane-chart {
    position: relative;
    height: 72px;
    min-width: 0;
    border-radius: var(--ps-radius-sm);
    background: linear-gradient(180deg, rgba(255, 252, 248, 0.95) 0%, rgba(243, 238, 230, 0.55) 100%);
    border: 1px solid var(--ps-border);
    overflow: hidden;
}

.up-hm-lane-chart::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(30, 27, 22, 0.05) 1px, transparent 1px);
    background-size: 100% 24px;
    pointer-events: none;
}

.up-hm-lane-chart canvas {
    display: block;
    width: 100% !important;
    height: 100% !important;
}

.up-hm-lane-stat {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    min-width: 72px;
    padding-left: 4px;
}

.up-hm-lane-stat strong {
    font-size: 18px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.03em;
    line-height: 1;
    color: var(--lane-accent);
    text-shadow: none;
}

.up-hm-lane-stat span {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--ps-ink-faint);
}

.up-hm-deck-axis {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 4px;
    margin-top: 10px;
    padding: 0 118px 0 202px;
}

.up-hm-deck-axis span {
    text-align: center;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--ps-ink-faint);
}

@media (max-width: 960px) {
    .up-hm-vault-hub {
        opacity: 0.28;
    }

    .up-hm-deck-axis {
        padding: 0 72px 0 152px;
    }
}

@media (max-width: 720px) {
    .up-hm-lane {
        grid-template-columns: 1fr;
        gap: 10px;
    min-height: 0;
        padding: 14px 14px 12px;
}

    .up-hm-lane-stat {
        flex-direction: row;
        align-items: baseline;
        justify-content: space-between;
    width: 100%;
        min-width: 0;
        padding-left: 0;
    }

    .up-hm-deck-axis {
        padding: 0 14px;
    }
}

@media (max-width: 640px) {
    .up-hm-vault,
    .up-hm-deck {
        padding: 14px 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .up-hm-vault-bg::after,
    .up-hm-vault-hub-aura,
    .up-hm-vault-hub-orbit,
    .up-hm-vault-hub-ring,
    .up-hm-vault-spark,
    .up-hm-vault-dust,
    .up-hm-deck-glow,
    .up-hm-deck-scan,
    .up-hm-orb,
    .up-hm-orb-glow,
    .up-hm-orb-chase,
    .up-hm-orb-spec {
        animation: none !important;
    }

    .up-hm-lane:hover {
        transform: none;
    }
}

/* ?? Home server panel · instrument console ?? */
.up-hm-server {
    margin: 0 0 16px;
}

.up-hm-srv-console {
    position: relative;
    padding: 14px 16px 12px;
    border-radius: var(--ps-radius-xl);
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(255, 253, 250, 0.98) 0%, rgba(246, 240, 230, 0.92) 100%);
    border: 1px solid rgba(120, 98, 72, 0.16);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.95),
        inset 0 -16px 28px rgba(45, 90, 74, 0.04),
        0 14px 32px rgba(84, 66, 44, 0.07);
}

.up-hm-srv-console-fx {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.up-hm-srv-console-hatch {
    position: absolute;
    inset: 0;
    opacity: 0.22;
    background: repeating-linear-gradient(
        -24deg,
        rgba(45, 90, 74, 0.035) 0,
        rgba(45, 90, 74, 0.035) 1px,
        transparent 1px,
        transparent 9px
    );
    mask-image: linear-gradient(180deg, #000 0%, transparent 88%);
}

.up-hm-srv-console-scan {
    position: absolute;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(45, 90, 74, 0.45), transparent);
    box-shadow: 0 0 12px rgba(45, 90, 74, 0.35);
    animation: up-hm-srv-console-scan 5.5s linear infinite;
}

.up-hm-srv-console-ring {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(280px, 70%);
    aspect-ratio: 1;
    border-radius: 50%;
    border: 1px dashed rgba(120, 98, 72, 0.12);
    transform: translate(-50%, -50%);
    opacity: 0.45;
    animation: up-hm-srv-console-ring 12s linear infinite;
}

.up-hm-srv-console-top {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 8px 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(120, 98, 72, 0.1);
}

.up-hm-srv-console-title .ps-kicker {
    margin: 0 0 3px;
    color: var(--ps-gold);
}

.up-hm-srv-console-title h2 {
    margin: 0;
    font-size: clamp(15px, 2.6vw, 19px);
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--ps-ink);
}

.up-hm-server-live {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(255, 252, 248, 0.9);
    border: 1px solid var(--ps-border);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92);
    font-size: 10px;
    font-weight: 600;
    color: var(--ps-ink-muted);
    white-space: nowrap;
}

.up-hm-server-live-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--ps-accent);
    box-shadow: 0 0 0 2px rgba(45, 90, 74, 0.12);
    animation: up-lt-metric-live 2.6s ease-in-out infinite;
}

.up-hm-server-live.is-busy .up-hm-server-live-dot {
    background: var(--ps-gold);
    box-shadow: 0 0 0 2px rgba(196, 162, 78, 0.16);
}

.up-hm-srv-console-board {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin-top: 12px;
    border-radius: calc(var(--ps-radius-md) + 1px);
    background: rgba(255, 252, 248, 0.55);
    border: 1px solid rgba(120, 98, 72, 0.1);
    overflow: hidden;
}

.up-hm-srv-zone {
    --zone-color: var(--ps-accent);
    --zone-glow: rgba(45, 90, 74, 0.28);
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-height: 118px;
    padding: 12px 10px 10px;
    text-align: center;
    border-right: 1px solid rgba(120, 98, 72, 0.08);
    transition: background 0.25s ease;
}

.up-hm-srv-zone:last-child {
    border-right: none;
}

.up-hm-srv-zone::before {
    content: "";
    position: absolute;
    top: 0;
    left: 12%;
    right: 12%;
    height: 2px;
    border-radius: 0 0 2px 2px;
    background: linear-gradient(90deg, transparent, var(--zone-color), transparent);
    opacity: 0.65;
}

.up-hm-srv-zone:hover {
    background: rgba(255, 252, 248, 0.82);
}

.up-hm-srv-zone.is-memory {
    --zone-color: #9A7230;
    --zone-glow: rgba(168, 124, 58, 0.32);
}

.up-hm-srv-zone.is-rcon {
    --zone-color: #3D5A80;
    --zone-glow: rgba(61, 90, 128, 0.3);
}

.up-hm-srv-zone.is-rcon.is-warn {
    --zone-color: #9A7230;
    --zone-glow: rgba(168, 124, 58, 0.32);
}

.up-hm-srv-zone.is-rcon.is-bad {
    --zone-color: #A8483A;
    --zone-glow: rgba(168, 72, 58, 0.35);
}

.up-hm-srv-zone.is-rcon.is-none {
    --zone-color: rgba(120, 98, 72, 0.42);
    --zone-glow: rgba(120, 98, 72, 0.12);
}

.up-hm-srv-zone.is-players {
    --zone-color: #3A6B52;
    --zone-glow: rgba(58, 107, 82, 0.32);
}

.up-hm-srv-zone-tag {
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.16em;
    color: var(--ps-ink-faint);
}

.up-hm-srv-zone-val {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 2px;
    margin: 2px 0 0;
    line-height: 1;
}

.up-hm-srv-zone-val strong {
    font-size: clamp(24px, 3.4vw, 32px);
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.05em;
    color: var(--zone-color);
    text-shadow: 0 0 18px var(--zone-glow);
    animation: up-hm-srv-val-glow 3.4s ease-in-out infinite;
}

.up-hm-srv-zone-val em {
    font-style: normal;
    font-size: 11px;
    font-weight: 700;
    color: var(--ps-ink-faint);
}

.up-hm-srv-zone-val.is-text strong {
    font-size: clamp(12px, 1.8vw, 14px);
    letter-spacing: -0.02em;
    line-height: 1.25;
    animation: none;
    text-shadow: none;
}

.up-hm-srv-zone-note {
    max-width: 100%;
    font-size: 9px;
    line-height: 1.3;
    color: var(--ps-ink-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.up-hm-srv-segbar {
    --gauge: 0;
    position: relative;
    width: 100%;
    max-width: 132px;
    height: 14px;
    margin-top: 6px;
    border-radius: 4px;
    background: repeating-linear-gradient(
        90deg,
        rgba(120, 98, 72, 0.09) 0,
        rgba(120, 98, 72, 0.09) 7px,
        transparent 7px,
        transparent 10px
    );
    overflow: hidden;
}

.up-hm-srv-segbar-fill {
    position: absolute;
    inset: 0 auto 0 0;
    width: calc(var(--gauge) * 1%);
    border-radius: inherit;
    background: repeating-linear-gradient(
        90deg,
        var(--zone-color) 0,
        var(--zone-color) 7px,
        transparent 7px,
        transparent 10px
    );
    filter: drop-shadow(0 0 8px var(--zone-glow));
    transition: width 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.up-hm-srv-segbar-head {
    position: absolute;
    top: 50%;
    left: calc(var(--gauge) * 1%);
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #fff;
    border: 1.5px solid var(--zone-color);
    box-shadow: 0 0 8px var(--zone-glow);
    transform: translate(-50%, -50%);
    transition: left 0.55s cubic-bezier(0.22, 1, 0.36, 1);
    opacity: calc(min(var(--gauge), 1) + 0.001);
}

.up-hm-srv-segbar.is-pulse .up-hm-srv-segbar-fill {
    animation: up-hm-srv-seg-pulse 2.2s ease-in-out infinite;
}

.up-hm-srv-zone.is-rcon.is-warn .up-hm-srv-zone-val strong {
    color: #9A7230;
}

.up-hm-srv-zone.is-rcon.is-bad .up-hm-srv-zone-val strong {
    color: #A8483A;
}

.up-hm-srv-zone.is-rcon.is-none .up-hm-srv-zone-val strong {
    color: var(--ps-ink-muted);
    animation: none;
    text-shadow: none;
}

.up-hm-srv-zone.is-players.is-live .up-hm-srv-zone-val strong {
    animation: up-hm-srv-val-glow 2.4s ease-in-out infinite;
}

.up-hm-srv-zone.is-players.is-error .up-hm-srv-zone-note {
    color: rgba(168, 72, 58, 0.88);
}

.up-hm-srv-zone.is-players.is-error .up-hm-srv-zone-val strong {
    color: var(--ps-ink-muted);
    animation: none;
    text-shadow: none;
}

@keyframes up-hm-srv-console-scan {
    0% { top: 18%; opacity: 0; }
    12% { opacity: 0.85; }
    88% { opacity: 0.85; }
    100% { top: 82%; opacity: 0; }
}

@keyframes up-hm-srv-console-ring {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes up-hm-srv-val-glow {
    0%, 100% { filter: brightness(1); }
    50% { filter: brightness(1.08); }
}

@keyframes up-hm-srv-seg-pulse {
    0%, 100% { opacity: 0.82; }
    50% { opacity: 1; }
}

@media (max-width: 900px) {
    .up-hm-srv-console-board {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .up-hm-srv-zone:nth-child(2) {
        border-right: none;
    }

    .up-hm-srv-zone:nth-child(1),
    .up-hm-srv-zone:nth-child(2) {
        border-bottom: 1px solid rgba(120, 98, 72, 0.08);
    }
}

@media (max-width: 560px) {
    .up-hm-srv-console {
        padding: 12px 12px 10px;
    }

    .up-hm-srv-console-board {
        grid-template-columns: 1fr;
    }

    .up-hm-srv-zone {
        border-right: none;
        border-bottom: 1px solid rgba(120, 98, 72, 0.08);
        min-height: 0;
    }

    .up-hm-srv-zone:last-child {
        border-bottom: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .up-hm-srv-console-scan,
    .up-hm-srv-console-ring,
    .up-hm-server-live-dot,
    .up-hm-srv-zone-val strong,
    .up-hm-srv-segbar.is-pulse .up-hm-srv-segbar-fill,
    .up-hm-srv-zone.is-rcon.is-ok {
        animation: none !important;
    }

    .up-hm-srv-segbar-fill,
    .up-hm-srv-segbar-head {
        transition: none !important;
    }
}

/* ?? Brand logo · ?? compass seal ?? */
.ps-brand-symbol-defs {
    position: absolute;
    width: 0;
    height: 0;
        overflow: hidden;
}

.ps-side {
    padding-top: 0;
}

.ps-side-brand {
    flex-shrink: 0;
    height: var(--ps-top-h);
    min-height: var(--ps-top-h);
    max-height: var(--ps-top-h);
    margin: 0 -10px;
    margin-bottom: 0;
    padding: 0;
    width: auto;
    align-self: stretch;
    box-sizing: border-box;
    border-bottom: 1px solid var(--ps-border);
    background: rgba(247, 244, 238, 0.75);
    display: flex;
    align-items: stretch;
}

.ps-side-brand-link {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-height: 0;
    height: 100%;
    padding: 0 12px 0 24px;
    border-radius: 0;
    text-decoration: none;
    color: inherit;
    transition: opacity 0.22s ease;
}

.ps-side-brand-link:hover {
    background: transparent;
    opacity: 0.92;
}

.ps-side-brand-link:focus-visible {
    outline: 2px solid rgba(45, 90, 74, 0.35);
    outline-offset: -2px;
}

.ps-side-mark {
    --mark-size: 40px;
    position: relative;
    width: var(--mark-size);
    height: var(--mark-size);
    padding: 0;
    border: none;
    border-radius: 14px;
    background: transparent;
    color: inherit;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    isolation: isolate;
    transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

.ps-side-mark::before {
    content: "";
    position: absolute;
    inset: -2px;
    border-radius: 16px;
    background: conic-gradient(from 210deg, rgba(196, 160, 72, 0.75), rgba(45, 90, 74, 0.15), rgba(196, 160, 72, 0.55), rgba(45, 90, 74, 0.08), rgba(196, 160, 72, 0.75));
    opacity: 0.42;
    z-index: -1;
    animation: ps-brand-orbit 10s linear infinite;
}

.ps-side-mark::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    box-shadow:
        0 10px 22px rgba(45, 90, 74, 0.22),
        0 2px 6px rgba(30, 27, 22, 0.1);
    z-index: -1;
    pointer-events: none;
}

.ps-side-brand-link:hover .ps-side-mark {
    transform: translateY(-1px) rotate(-2deg);
}

.ps-brand-mark {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
}

.ps-brand-mark--sm {
    width: 100%;
    height: 100%;
    flex-shrink: 0;
}

.ps-side-brand-text {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ps-side-brand-kicker {
    display: block;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.1em;
    color: var(--ps-ink-faint);
    line-height: 1.2;
}

.ps-side-brand-name {
    display: block;
    font-family: system-ui, -apple-system, 'Microsoft YaHei', 'PingFang SC', sans-serif;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.2;
    color: var(--ps-ink);
}

.ps-side-brand-name.is-split {
    display: flex;
    align-items: baseline;
    gap: 1px;
}

.ps-side-brand-word.is-gold {
    background: linear-gradient(128deg, #8F6E22 8%, #D4B56A 42%, #F0E2B8 58%, #9A7B2F 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow: none;
}

.ps-auth-tag {
    gap: 9px;
}

.ps-auth-tag .ps-brand-mark-wrap {
    --mark-size: 30px;
    position: relative;
    width: var(--mark-size);
    height: var(--mark-size);
    display: grid;
    place-items: center;
    flex-shrink: 0;
    filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.28));
}

.ps-auth-tag .ps-brand-mark-wrap::before {
    display: none;
}

@keyframes ps-brand-orbit {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .ps-side-mark::before {
        animation: none;
    }

    .ps-side-mark,
    .ps-side-brand-link:hover .ps-side-mark {
        transform: none;
        transition: none;
    }
}

/* ?? Header row lock??????????? ?? */
.ps-topbar {
    height: var(--ps-top-h);
    min-height: var(--ps-top-h);
    max-height: var(--ps-top-h);
    box-sizing: border-box;
}

@media (max-width: 1024px) {
    .ps-topbar-title {
        display: none;
    }
}

/* ?? Topbar user · prism aurora strip ?? */
.ps-topbar-user {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
}

/* ?? Theme Toggle ?? */
.ps-theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 1px solid var(--ps-border);
    border-radius: 50%;
    background: var(--ps-surface);
    color: var(--ps-ink-muted);
    cursor: pointer;
    transition: background 0.2s var(--ps-ease), color 0.2s var(--ps-ease), border-color 0.2s var(--ps-ease);
    flex-shrink: 0;
}
.ps-theme-toggle:hover {
    background: var(--ps-surface-2);
    color: var(--ps-ink);
    border-color: var(--ps-border-strong);
}
.ps-theme-toggle .ps-theme-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    transition: transform 0.3s var(--ps-ease);
}
.ps-theme-toggle .ps-theme-icon.is-moon { display: none; }
[data-theme="dark"] .ps-theme-toggle .ps-theme-icon.is-sun { display: none; }
[data-theme="dark"] .ps-theme-toggle .ps-theme-icon.is-moon { display: inline-flex; }
[data-theme="dark"] .ps-theme-toggle .ps-theme-icon {
    transform: rotate(360deg);
}

.ps-topbar-hud {
    position: relative;
    display: flex;
    align-items: stretch;
    min-height: 40px;
    padding: 0 4px;
    border-radius: 14px;
    overflow: hidden;
    background: rgba(255, 252, 248, 0.82);
    border: 1px solid rgba(120, 98, 72, 0.12);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.96),
        0 8px 24px rgba(45, 90, 74, 0.07);
}

.ps-topbar-hud::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(120deg, rgba(196, 160, 72, 0.55), rgba(45, 90, 74, 0.15), rgba(61, 90, 128, 0.45), rgba(196, 160, 72, 0.35));
    background-size: 220% 220%;
    animation: ps-topbar-hud-border 6s ease-in-out infinite;
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

.ps-topbar-hud-fx {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.ps-topbar-hud-blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(14px);
    opacity: 0.55;
}

.ps-topbar-hud-blob--gold {
    width: 56px;
    height: 56px;
    left: 8%;
    top: 50%;
    margin-top: -28px;
    background: rgba(212, 181, 106, 0.55);
    animation: ps-topbar-hud-blob-a 5.5s ease-in-out infinite;
}

.ps-topbar-hud-blob--gem {
    width: 52px;
    height: 52px;
    right: 6%;
    top: 50%;
    margin-top: -26px;
    background: rgba(122, 158, 196, 0.48);
    animation: ps-topbar-hud-blob-b 6.2s ease-in-out infinite;
}

.ps-topbar-hud-stat {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 12px 0 10px;
    min-height: 40px;
}

.ps-topbar-hud-stat + .ps-topbar-hud-stat {
    border-left: 1px solid rgba(120, 98, 72, 0.08);
}

.ps-topbar-hud-orb {
    --orb-bg: var(--ps-accent);
    --orb-glow: rgba(45, 90, 74, 0.32);
    position: relative;
    width: 28px;
    height: 28px;
    border-radius: 9px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    overflow: hidden;
    font-size: 13px;
    color: #fff;
    background: linear-gradient(145deg, color-mix(in srgb, var(--orb-bg) 82%, #fff), var(--orb-bg));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.38),
        0 0 16px var(--orb-glow);
    transform: rotate(-4deg);
}

.ps-topbar-hud-stat.is-gold .ps-topbar-hud-orb {
    --orb-bg: #9A7B2F;
    --orb-glow: rgba(196, 160, 72, 0.38);
}

.ps-topbar-hud-stat.is-diamond .ps-topbar-hud-orb {
    --orb-bg: #3D5A80;
    --orb-glow: rgba(61, 90, 128, 0.34);
    transform: rotate(4deg);
}

.ps-topbar-hud-glint {
    position: absolute;
    inset: -40% -60%;
    background: linear-gradient(105deg, transparent 42%, rgba(255, 255, 255, 0.72) 50%, transparent 58%);
    transform: translateX(-120%) rotate(8deg);
    animation: ps-topbar-hud-glint 3.8s ease-in-out infinite;
    pointer-events: none;
}

.ps-topbar-hud-stat.is-diamond .ps-topbar-hud-glint {
    animation-delay: -1.6s;
}

.ps-topbar-hud-orb i {
    position: relative;
    z-index: 1;
}

.ps-topbar-hud-val {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.ps-topbar-hud-tag {
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: var(--ps-ink-faint);
    line-height: 1;
}

.ps-topbar-hud-stat .ps-wallet-num {
    font-family: system-ui, -apple-system, 'Microsoft YaHei', 'PingFang SC', sans-serif;
    font-size: 14px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.03em;
    line-height: 1.05;
    background-size: 200% auto;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: ps-topbar-hud-flow 4.2s linear infinite;
}

.ps-topbar-hud-stat.is-gold .ps-wallet-num {
    background-image: linear-gradient(90deg, #6B5218, #C4A048, #F0E2B8, #8F6E22, #6B5218);
}

.ps-topbar-hud-stat.is-diamond .ps-wallet-num {
    background-image: linear-gradient(90deg, #2A4060, #5A8FC4, #C8DCF0, #3D5A80, #2A4060);
    animation-delay: -2s;
}

.ps-topbar-account {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 40px;
    max-width: min(168px, 28vw);
    padding: 4px 14px 4px 4px;
    border-radius: 999px;
    background: rgba(255, 252, 248, 0.9);
    border: 1px solid rgba(45, 90, 74, 0.1);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.94);
    color: var(--ps-ink);
    text-decoration: none;
    overflow: hidden;
    transition: box-shadow 0.28s ease, transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.ps-topbar-account:hover {
    transform: translateY(-1px);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.96),
        0 10px 26px rgba(45, 90, 74, 0.11);
}

.ps-topbar-account-aura {
    position: absolute;
    left: 4px;
    top: 50%;
    width: 32px;
    height: 32px;
    margin-top: -16px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(45, 90, 74, 0.38) 0%, rgba(196, 160, 72, 0.22) 42%, transparent 72%);
    animation: ps-topbar-account-aura 2.6s ease-out infinite;
    pointer-events: none;
}

.ps-topbar-account-avatar {
    position: relative;
    z-index: 1;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    flex-shrink: 0;
    background: linear-gradient(145deg, #3A705C 0%, #1A3D32 100%);
    color: #F7F4EE;
    display: grid;
    place-items: center;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.22),
        0 0 0 2px rgba(255, 252, 248, 0.85);
}

.ps-topbar-account-name {
    position: relative;
    z-index: 1;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@keyframes ps-topbar-hud-border {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

@keyframes ps-topbar-hud-blob-a {
    0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.45; }
    50% { transform: translate(8px, -3px) scale(1.12); opacity: 0.72; }
}

@keyframes ps-topbar-hud-blob-b {
    0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.42; }
    50% { transform: translate(-7px, 2px) scale(1.1); opacity: 0.68; }
}

@keyframes ps-topbar-hud-glint {
    0%, 18%, 100% { transform: translateX(-120%) rotate(8deg); opacity: 0; }
    28% { opacity: 1; }
    48% { transform: translateX(120%) rotate(8deg); opacity: 0; }
}

@keyframes ps-topbar-hud-flow {
    0% { background-position: 0% center; }
    100% { background-position: 200% center; }
}

@keyframes ps-topbar-account-aura {
    0% { transform: scale(0.82); opacity: 0.75; }
    70% { transform: scale(1.45); opacity: 0; }
    100% { transform: scale(1.45); opacity: 0; }
}

@media (max-width: 1024px) {
    .ps-topbar {
        padding: 8px 10px;
        gap: 6px;
    }

    .ps-topbar-start {
        flex-shrink: 0;
    }

    .ps-topbar-user {
        flex: 1;
        justify-content: flex-end;
    align-items: center;
        gap: 5px;
        min-width: 0;
    }

    .ps-topbar-hud {
        display: contents;
    }

    .ps-topbar-hud::after,
    .ps-topbar-hud-fx {
        display: none !important;
    }

    .ps-topbar-hud-stat {
    display: inline-flex;
    align-items: center;
        gap: 4px;
        min-width: 0;
        max-width: calc(50% - 22px);
        min-height: 0;
        padding: 3px 8px 3px 3px;
        border-radius: 999px;
        flex: 0 1 auto;
    }

    .ps-topbar-hud-stat + .ps-topbar-hud-stat {
        border-left: none;
    }

    .ps-topbar-hud-stat.is-gold {
        background: rgba(196, 162, 78, 0.14);
        border: 1px solid rgba(154, 123, 47, 0.16);
    }

    .ps-topbar-hud-stat.is-diamond {
        background: rgba(61, 90, 128, 0.1);
        border: 1px solid rgba(61, 90, 128, 0.14);
    }

    .ps-topbar-hud-tag,
    .ps-topbar-hud-glint {
        display: none !important;
    }

    .ps-topbar-hud-orb {
        width: 24px;
        height: 24px;
        border-radius: 50%;
        font-size: 11px;
        transform: none;
        box-shadow: none;
    }

    .ps-topbar-hud-val {
        min-width: 0;
        flex: 1;
    }

    .ps-topbar-hud-stat .ps-wallet-num {
        display: block;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
        overflow: hidden;
        text-overflow: ellipsis;
    white-space: nowrap;
        background: none !important;
        background-image: none !important;
        background-size: auto !important;
        -webkit-background-clip: border-box !important;
        background-clip: border-box !important;
        -webkit-text-fill-color: currentColor !important;
        animation: none !important;
    }

    .ps-topbar-hud-stat.is-gold .ps-wallet-num {
        color: #7A5E18;
    }

    .ps-topbar-hud-stat.is-diamond .ps-wallet-num {
        color: #3D5A80;
    }

    .ps-topbar-account {
        flex-shrink: 0;
        min-height: 0;
        max-width: none;
        padding: 0;
        border: none;
        background: transparent;
        box-shadow: none;
    }

    .ps-topbar-account:hover {
        transform: none;
        box-shadow: none;
    }

    .ps-topbar-account-name,
    .ps-topbar-account-aura {
        display: none !important;
    }

    .ps-topbar-account-avatar {
        width: 34px;
        height: 34px;
    }
}

@media (max-width: 480px) {
    .ps-topbar {
        padding: 8px 8px;
    }

    .ps-topbar-user {
        gap: 4px;
    }

    .ps-topbar-hud-stat {
        max-width: calc(50% - 18px);
        padding: 2px 6px 2px 2px;
    }

    .ps-topbar-hud-orb {
        width: 22px;
        height: 22px;
        font-size: 10px;
    }

    .ps-topbar-hud-stat .ps-wallet-num {
        font-size: 11px;
    }

    .ps-topbar-account-avatar {
        width: 32px;
        height: 32px;
        font-size: 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ps-topbar-hud::after,
    .ps-topbar-hud-blob,
    .ps-topbar-hud-glint,
    .ps-topbar-hud-stat .ps-wallet-num,
    .ps-topbar-account-aura,
    .ps-topbar-account:hover {
        animation: none !important;
        transform: none !important;
    }

    .ps-topbar-hud-stat .ps-wallet-num {
        -webkit-text-fill-color: currentColor;
        background: none;
    }

    .ps-topbar-hud-stat.is-gold .ps-wallet-num {
        color: #7A5E18;
    }

    .ps-topbar-hud-stat.is-diamond .ps-wallet-num {
        color: #3D5A80;
    }
}

/* ?? Recharge center · offers ?? */
.up-rc-art-defs {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
    pointer-events: none;
}

@keyframes up-rc-offer-shine {
    0%, 18%, 100% { transform: translateX(-130%) skewX(-12deg); opacity: 0; }
    28% { opacity: 0.85; }
    48% { transform: translateX(130%) skewX(-12deg); opacity: 0; }
}

.is-recharge .ps-notice {
    margin-bottom: 14px;
}

.up-rc-arena {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.up-rc-offer {
    --rc-accent: var(--ps-accent);
    --rc-accent-soft: rgba(45, 90, 74, 0.12);
    --rc-glow: rgba(45, 90, 74, 0.16);
    --rc-seal-w: 112px;
    --rc-foot-w: 132px;
    position: relative;
    display: grid;
    grid-template-columns: var(--rc-seal-w) minmax(0, 1fr) var(--rc-foot-w);
    grid-template-areas: "seal body foot";
    align-items: stretch;
    gap: 0;
    min-height: 0;
    border-radius: var(--ps-radius-xl);
    background: var(--ps-surface);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
    overflow: hidden;
}

.up-rc-offer.is-gold {
    --rc-accent: #9A7B2F;
    --rc-accent-soft: rgba(196, 162, 78, 0.14);
    --rc-glow: rgba(196, 162, 78, 0.2);
}

.up-rc-offer.is-diamond {
    --rc-accent: #3D5A80;
    --rc-accent-soft: rgba(61, 90, 128, 0.12);
    --rc-glow: rgba(61, 90, 128, 0.18);
}

.up-rc-offer.is-member {
    --rc-accent: #2D5A4A;
    --rc-accent-soft: rgba(45, 90, 74, 0.12);
    --rc-glow: rgba(45, 90, 74, 0.18);
}

.up-rc-offer.is-item {
    --rc-accent: #B85C38;
    --rc-accent-soft: rgba(184, 92, 56, 0.12);
    --rc-glow: rgba(184, 92, 56, 0.16);
}

.up-rc-offer.is-featured {
    border-color: rgba(196, 162, 78, 0.28);
    box-shadow:
        var(--ps-shadow-sm),
        0 0 0 1px rgba(196, 162, 78, 0.08);
}

.up-rc-offer-fx {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.up-rc-offer-hatch {
    position: absolute;
    inset: 0;
    opacity: 0.18;
    background: repeating-linear-gradient(
        -24deg,
        rgba(45, 90, 74, 0.03) 0,
        rgba(45, 90, 74, 0.03) 1px,
        transparent 1px,
        transparent 9px
    );
}

.up-rc-offer-glow {
    position: absolute;
    top: -30%;
    left: -10%;
    width: 50%;
    height: 80%;
    background: radial-gradient(circle, var(--rc-glow) 0%, transparent 70%);
    opacity: 0.65;
}

.up-rc-offer-seal {
    grid-area: seal;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 16px 10px;
    overflow: hidden;
    background: linear-gradient(180deg, var(--rc-accent-soft) 0%, rgba(255, 252, 248, 0.42) 100%);
    border-right: 1px solid var(--ps-border);
}

.up-rc-offer-seal::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 85% 55% at 50% 100%, var(--rc-glow) 0%, transparent 72%),
        linear-gradient(180deg, rgba(255, 252, 248, 0.1) 0%, transparent 44%);
    animation: up-rc-seal-column-glow 2.8s ease-in-out infinite;
    pointer-events: none;
}

.up-rc-offer-seal::after {
    content: '';
    position: absolute;
    left: 0;
    top: 16%;
    bottom: 16%;
    width: 2px;
    border-radius: 999px;
    background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--rc-accent) 55%, transparent), transparent);
    opacity: 0.5;
    pointer-events: none;
}

.up-rc-offer-seal-stack {
    position: relative;
    z-index: 1;
    width: 80px;
    height: 80px;
    display: grid;
    place-items: center;
}

.up-rc-offer-seal-fx {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.up-rc-offer-seal-halo {
    position: absolute;
    inset: 8%;
    border-radius: 50%;
    background: radial-gradient(circle, var(--rc-glow) 0%, transparent 72%);
    animation: up-rc-seal-halo-breathe 3s ease-in-out infinite;
}

.up-rc-offer-seal-ripple {
    position: absolute;
    inset: 6%;
    border-radius: 50%;
    border: 1.5px solid color-mix(in srgb, var(--rc-accent) 45%, transparent);
    animation: up-rc-seal-ripple 2.8s ease-out infinite;
}

.up-rc-offer-seal-ripple.is-b {
    animation-delay: 1.4s;
}

.up-rc-offer-seal-sparks {
    position: absolute;
    inset: 0;
}

.up-rc-offer-seal-sparks i {
    position: absolute;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--rc-accent) 70%, #fff);
    box-shadow: 0 0 6px var(--rc-glow);
    animation: up-rc-seal-spark-twinkle 2.4s ease-in-out infinite;
}

.up-rc-offer-seal-sparks .is-1 { top: 8%; left: 18%; animation-delay: 0s; }
.up-rc-offer-seal-sparks .is-2 { top: 14%; right: 12%; animation-delay: 0.6s; }
.up-rc-offer-seal-sparks .is-3 { bottom: 16%; left: 12%; animation-delay: 1.2s; }
.up-rc-offer-seal-sparks .is-4 { bottom: 10%; right: 18%; animation-delay: 1.8s; }

.up-rc-offer-seal-sweep {
    position: absolute;
    inset: -10%;
    background: linear-gradient(
        105deg,
        transparent 42%,
        rgba(255, 252, 248, 0.55) 50%,
        transparent 58%
    );
    animation: up-rc-seal-sweep 5s ease-in-out infinite;
    pointer-events: none;
}

.up-rc-offer-seal-core {
    position: relative;
    z-index: 2;
    width: 60px;
    height: 60px;
    display: grid;
    place-items: center;
    overflow: visible;
    background: transparent;
    color: inherit;
    box-shadow: none;
    animation: up-rc-seal-core-breathe 2.6s ease-in-out infinite;
}

.up-rc-offer-art {
    display: block;
    width: 60px;
    height: 60px;
    flex-shrink: 0;
    filter: drop-shadow(0 6px 14px var(--rc-glow));
}

.up-rc-offer-art.is-photo {
    width: 52px;
    height: 52px;
    object-fit: contain;
    object-position: center;
    padding: 4px;
    border-radius: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    filter: drop-shadow(0 4px 10px var(--rc-glow));
}

.up-rc-offer-seal-core:has(.up-rc-offer-art-frame) {
    animation: none;
}

.up-rc-offer-art-frame.is-item-photo {
    position: relative;
    z-index: 2;
    width: 60px;
    height: 60px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background:
        radial-gradient(circle at 50% 35%, rgba(255, 252, 248, 0.95) 0%, rgba(243, 238, 230, 0.88) 100%);
    border: 1px solid color-mix(in srgb, var(--rc-accent) 24%, transparent);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.65),
        0 8px 18px var(--rc-glow);
    animation: up-rc-seal-core-breathe 2.6s ease-in-out infinite;
}

.up-rc-offer.is-gold .up-rc-offer-art:not(.is-photo) {
    filter: drop-shadow(0 6px 16px rgba(196, 162, 78, 0.38));
}

.up-rc-offer.is-diamond .up-rc-offer-art:not(.is-photo) {
    filter: drop-shadow(0 6px 16px rgba(61, 90, 128, 0.34));
}

.up-rc-offer.is-member .up-rc-offer-art:not(.is-photo) {
    filter: drop-shadow(0 6px 16px rgba(45, 90, 74, 0.34));
}

.up-rc-offer.is-item .up-rc-offer-art:not(.is-photo) {
    filter: drop-shadow(0 6px 16px rgba(184, 92, 56, 0.32));
}

.up-rc-offer-id {
    position: relative;
    z-index: 1;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--ps-ink-faint);
}

.up-rc-offer-body {
    grid-area: body;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
        min-width: 0;
    padding: 16px 18px 14px;
}

.up-rc-offer-hotmark {
    position: absolute;
    top: 8px;
    right: 10px;
    z-index: 4;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    pointer-events: none;
    transform: rotate(6deg);
    filter: drop-shadow(0 3px 8px rgba(230, 81, 0, 0.28));
}

.up-rc-offer-hotmark-icon {
    font-size: 32px;
    color: #E65100;
    line-height: 1;
}

.up-rc-offer-title {
    margin: 0;
    min-width: 0;
    font-family: system-ui, -apple-system, 'Microsoft YaHei', 'PingFang SC', sans-serif;
    font-size: clamp(18px, 3.4vw, 22px);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.28;
    text-wrap: pretty;
    color: var(--ps-ink);
}

.up-rc-offer-desc {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 10px 12px;
    border-radius: 10px;
    background: var(--ps-surface-2);
    border: 1px dashed color-mix(in srgb, var(--ps-ink) 12%, transparent);
}

.up-rc-offer-desc-tag {
    flex-shrink: 0;
    padding: 2px 8px;
    border-radius: 6px;
    background: var(--ps-surface);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--ps-ink-faint);
}

.up-rc-offer-desc-text {
    margin: 0;
    min-width: 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--ps-ink-muted);
}

.up-rc-offer-rewards {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.up-rc-offer-rewards li {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    background: var(--ps-surface-2);
    border: 1px solid var(--ps-border);
}

.up-rc-offer-rewards li.is-gold { color: #7A5E18; background: rgba(196, 162, 78, 0.1); border-color: rgba(154, 123, 47, 0.16); }
.up-rc-offer-rewards li.is-diamond { color: #3D5A80; background: rgba(61, 90, 128, 0.08); border-color: rgba(61, 90, 128, 0.14); }
.up-rc-offer-rewards li.is-member { color: var(--ps-accent); background: rgba(45, 90, 74, 0.08); border-color: rgba(45, 90, 74, 0.12); }

.up-rc-offer-foot {
    grid-area: foot;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    gap: 10px;
    width: var(--rc-foot-w);
    min-width: var(--rc-foot-w);
    max-width: var(--rc-foot-w);
    box-sizing: border-box;
    padding: 14px 12px;
    border-left: 1px solid var(--ps-border);
    background: linear-gradient(180deg, rgba(255, 252, 248, 0.94) 0%, var(--ps-surface-2) 100%);
}

.up-rc-offer.is-featured .up-rc-offer-foot {
    background: linear-gradient(180deg, rgba(255, 252, 248, 0.96) 0%, rgba(230, 81, 0, 0.06) 100%);
}

@keyframes up-rc-price-underline {
    0%, 100% { transform: scaleX(0.72); opacity: 0.55; }
    50% { transform: scaleX(1); opacity: 1; }
}

.up-rc-offer-price {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    min-width: 0;
}

.up-rc-offer-price-halo {
    display: none;
}

.up-rc-offer-price-value {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 1px;
    width: 100%;
    padding: 7px 8px 9px;
    border-radius: 10px;
    box-sizing: border-box;
    background: var(--ps-surface);
    border: 1px solid rgba(155, 61, 61, 0.14);
    box-shadow: inset 0 1px 0 rgba(255, 252, 248, 0.95);
}

.up-rc-offer-price-value::after {
    content: '';
    position: absolute;
    left: 14%;
    right: 14%;
    bottom: 5px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, rgba(155, 61, 61, 0.42), transparent);
    transform-origin: center;
    animation: up-rc-price-underline 3.6s ease-in-out infinite;
    pointer-events: none;
}

.up-rc-offer-price-currency {
    font-family: system-ui, -apple-system, 'Microsoft YaHei', 'PingFang SC', sans-serif;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    color: var(--ps-danger);
    transform: translateY(-0.04em);
}

.up-rc-offer-price-num {
    font-family: system-ui, -apple-system, 'Microsoft YaHei', 'PingFang SC', sans-serif;
    font-size: 17px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
    line-height: 1;
    color: var(--ps-danger);
    text-shadow: 0 1px 0 rgba(255, 252, 248, 0.85);
}

.up-rc-offer-price-shine,
.up-rc-offer-price-spark {
    display: none;
}

.up-rc-offer-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: 100%;
    min-height: var(--ps-touch, 44px);
    padding: 0 10px;
    border-radius: 999px;
    border: 1.5px solid color-mix(in srgb, var(--rc-accent) 55%, transparent);
    background: rgba(255, 252, 248, 0.72);
    color: var(--rc-accent);
    font-family: 'Microsoft YaHei', 'PingFang SC', system-ui, -apple-system, sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition:
        background 0.22s ease,
        border-color 0.22s ease,
        color 0.22s ease,
        box-shadow 0.22s ease,
        transform 0.18s var(--ps-ease);
    box-shadow: inset 0 1px 0 rgba(255, 252, 248, 0.9);
}

.up-rc-offer-btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--rc-accent) 12%, transparent);
    font-size: 11px;
    line-height: 1;
    transition: background 0.22s ease, color 0.22s ease;
}

.up-rc-offer-btn:not(:disabled):hover {
    background: var(--rc-accent);
    border-color: var(--rc-accent);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px color-mix(in srgb, var(--rc-accent) 28%, transparent);
}

.up-rc-offer-btn:not(:disabled):hover .up-rc-offer-btn-icon {
    background: rgba(255, 252, 248, 0.18);
    color: #fff;
}

.up-rc-offer-btn:active:not(:disabled) {
    transform: translateY(0);
}

.up-rc-offer-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}

@media (max-width: 720px) {
    .up-rc-offer {
        --rc-seal-w: 100%;
        grid-template-columns: 1fr;
        grid-template-areas:
            "seal"
            "body"
            "foot";
    }

    .up-rc-offer-seal {
        flex-direction: row;
        justify-content: flex-start;
        gap: 10px;
        padding: 12px 14px;
        border-right: none;
        border-bottom: 1px solid var(--ps-border);
    }

    .up-rc-offer-seal-stack {
        width: 64px;
        height: 64px;
        flex-shrink: 0;
    }

    .up-rc-offer-seal-core {
        width: 52px;
        height: 52px;
    }

    .up-rc-offer-art {
        width: 52px;
        height: 52px;
    }

    .up-rc-offer-art.is-photo {
        width: 44px;
        height: 44px;
    }

    .up-rc-offer-art-frame.is-item-photo {
        width: 52px;
        height: 52px;
        border-radius: 14px;
    }

    .up-rc-offer-seal-orbit i {
        width: 4px;
        height: 4px;
        margin-left: -2px;
    }

    .up-rc-offer-foot {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 10px 12px;
        width: 100%;
        min-width: 0;
        max-width: none;
        padding: 12px 14px 14px;
        border-left: none;
        border-top: 1px solid var(--ps-border);
    }

    .up-rc-offer-price {
        flex: 0 0 auto;
        width: auto;
        justify-content: flex-start;
    }

    .up-rc-offer-price-value {
        width: auto;
        min-width: 88px;
    }

    .up-rc-offer-price-num {
        font-size: 16px;
    }

    .up-rc-offer-hotmark {
        top: 6px;
        right: 8px;
        width: 34px;
        height: 34px;
    }

    .up-rc-offer-hotmark-icon {
        font-size: 28px;
    }

    .up-rc-offer-btn {
        flex: 0 0 auto;
        width: auto;
        min-width: 112px;
    }

    .up-rc-offer-hotmark {
        top: 6px;
        right: 8px;
        width: 34px;
        height: 34px;
    }

    .up-rc-offer-hotmark-icon {
        font-size: 28px;
    }

    .up-rc-offer-title {
        font-size: 17px;
        line-height: 1.3;
    }
}

@media (prefers-reduced-motion: reduce) {
    .up-rc-offer-seal::before,
    .up-rc-offer-seal-halo,
    .up-rc-offer-seal-ripple,
    .up-rc-offer-seal-sparks i,
    .up-rc-offer-seal-sweep,
    .up-rc-offer-seal-core,
    .up-rc-offer-art-frame.is-item-photo,
    .up-rc-offer-art,
    .up-rc-offer-btn-shine,
    .up-rc-offer-price-value,
    .up-rc-offer-price-value::after,
    .up-rc-offer-hotmark {
        animation: none !important;
        transform: none !important;
    }
}

.ps-recharge-pay .ps-modal-panel {
    width: min(100%, 460px);
}

.ps-recharge-pay-panel {
    position: relative;
    overflow: hidden;
    padding: 0;
    background:
        radial-gradient(ellipse 80% 55% at 100% 0%, rgba(45, 90, 74, 0.08) 0%, transparent 58%),
        radial-gradient(ellipse 60% 45% at 0% 100%, rgba(154, 123, 47, 0.07) 0%, transparent 55%),
        var(--ps-surface);
    border-color: rgba(30, 27, 22, 0.1);
    box-shadow: 0 24px 64px rgba(30, 27, 22, 0.14);
}

.ps-recharge-pay-panel .ps-modal-close {
    top: 14px;
    right: 14px;
    z-index: 2;
}

.ps-recharge-pay-summary {
    padding: 22px 54px 18px 22px;
    border-bottom: 1px solid var(--ps-border);
}

.ps-recharge-pay-summary .ps-kicker {
    margin: 0 0 10px;
}

.ps-recharge-pay-summary-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px;
}

.ps-recharge-pay-title {
    margin: 0;
    min-width: 0;
    flex: 1 1 auto;
    font-family: system-ui, -apple-system, 'Microsoft YaHei', 'PingFang SC', sans-serif;
    font-size: clamp(18px, 3.6vw, 22px);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.25;
    text-wrap: pretty;
    color: var(--ps-ink);
}

.ps-recharge-pay-price-box {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: baseline;
    gap: 1px;
    padding: 7px 12px 9px;
    border-radius: 10px;
    background: var(--ps-surface);
    border: 1px solid rgba(155, 61, 61, 0.14);
    box-shadow: inset 0 1px 0 rgba(255, 252, 248, 0.95);
}

.ps-recharge-pay-price-currency {
    font-family: system-ui, -apple-system, 'Microsoft YaHei', 'PingFang SC', sans-serif;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    color: var(--ps-danger);
}

.ps-recharge-pay-price-num {
    font-family: system-ui, -apple-system, 'Microsoft YaHei', 'PingFang SC', sans-serif;
    font-size: 18px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
    line-height: 1;
    color: var(--ps-danger);
}

.ps-recharge-pay-body {
    padding: 18px 22px 0;
}

.ps-recharge-pay-label {
    margin: 0 0 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ps-ink-faint);
}

.ps-recharge-pay-channels {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.ps-recharge-pay-channels:has(.ps-recharge-pay-channel:only-child) {
    grid-template-columns: 1fr;
}

.ps-recharge-pay-channel {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 58px;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid var(--ps-border-strong);
    background: rgba(255, 252, 248, 0.72);
    cursor: pointer;
    transition:
        border-color 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.18s var(--ps-ease, ease);
}

.ps-recharge-pay-channel input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.ps-recharge-pay-channel-mark {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    font-family: system-ui, -apple-system, 'Microsoft YaHei', 'PingFang SC', sans-serif;
    font-size: 15px;
    font-weight: 800;
    line-height: 1;
    color: #fff;
}

.ps-recharge-pay-channel.is-alipay .ps-recharge-pay-channel-mark {
    background: linear-gradient(145deg, #1677ff, #0958d9);
    box-shadow: 0 4px 12px rgba(22, 119, 255, 0.24);
}

.ps-recharge-pay-channel.is-wechat .ps-recharge-pay-channel-mark {
    background: linear-gradient(145deg, #07c160, #049652);
    box-shadow: 0 4px 12px rgba(7, 193, 96, 0.22);
}

.ps-recharge-pay-channel-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.ps-recharge-pay-channel-text strong {
    font-size: 14px;
    font-weight: 700;
    color: var(--ps-ink);
}

.ps-recharge-pay-channel-text em {
    font-style: normal;
    font-size: 11px;
    line-height: 1.35;
    color: var(--ps-ink-faint);
}

.ps-recharge-pay-channel:has(input:checked) {
    border-color: color-mix(in srgb, var(--ps-accent) 42%, transparent);
    background: color-mix(in srgb, var(--ps-accent) 6%, var(--ps-surface));
    box-shadow: 0 8px 20px rgba(45, 90, 74, 0.08);
}

.ps-recharge-pay-channel.is-alipay:has(input:checked) {
    border-color: rgba(22, 119, 255, 0.28);
    background: rgba(22, 119, 255, 0.06);
    box-shadow: 0 8px 20px rgba(22, 119, 255, 0.08);
}

.ps-recharge-pay-channel.is-wechat:has(input:checked) {
    border-color: rgba(7, 193, 96, 0.28);
    background: rgba(7, 193, 96, 0.06);
    box-shadow: 0 8px 20px rgba(7, 193, 96, 0.08);
}

.ps-recharge-pay-scan[hidden],
.ps-recharge-pay-setup[hidden] {
    display: none !important;
}

.ps-recharge-pay-scan {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    padding: 4px 0 2px;
}

.ps-recharge-pay-scan-head {
    width: 100%;
    text-align: center;
}

.ps-recharge-pay-scan-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 10px;
    border-radius: 999px;
    background: var(--ps-surface-2);
    border: 1px solid var(--ps-border);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--ps-ink-muted);
}

.ps-recharge-pay-scan-badge.is-alipay {
    color: #0958d9;
    background: rgba(22, 119, 255, 0.08);
    border-color: rgba(22, 119, 255, 0.16);
}

.ps-recharge-pay-scan-badge.is-wechat {
    color: #049652;
    background: rgba(7, 193, 96, 0.08);
    border-color: rgba(7, 193, 96, 0.16);
}

.ps-recharge-pay-qr-hint {
    margin: 8px 0 0;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
    color: var(--ps-ink);
}

.ps-recharge-pay-scan-frame {
    position: relative;
    padding: 14px;
    border-radius: 18px;
    background:
        linear-gradient(180deg, rgba(255, 252, 248, 0.95) 0%, var(--ps-surface-2) 100%);
    border: 1px dashed color-mix(in srgb, var(--ps-ink) 14%, transparent);
}

.ps-recharge-pay-scan-corner {
    position: absolute;
    width: 16px;
    height: 16px;
    border: 2px solid color-mix(in srgb, var(--ps-accent) 55%, transparent);
}

.ps-recharge-pay-scan-corner.is-tl {
    top: 8px;
    left: 8px;
    border-right: 0;
    border-bottom: 0;
    border-radius: 4px 0 0 0;
}

.ps-recharge-pay-scan-corner.is-tr {
    top: 8px;
    right: 8px;
    border-left: 0;
    border-bottom: 0;
    border-radius: 0 4px 0 0;
}

.ps-recharge-pay-scan-corner.is-bl {
    bottom: 8px;
    left: 8px;
    border-right: 0;
    border-top: 0;
    border-radius: 0 0 0 4px;
}

.ps-recharge-pay-scan-corner.is-br {
    bottom: 8px;
    right: 8px;
    border-left: 0;
    border-top: 0;
    border-radius: 0 0 4px 0;
}

.ps-recharge-pay-scan-frame img {
    display: block;
    width: 168px;
    height: 168px;
    border-radius: 12px;
    background: #fff;
    padding: 8px;
    box-shadow: 0 10px 28px rgba(30, 27, 22, 0.08);
}

.ps-recharge-pay-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 8px 12px;
    border-radius: 999px;
    background: var(--ps-surface-2);
    border: 1px solid var(--ps-border);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--ps-ink-muted);
}

.ps-recharge-pay-status-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--ps-warn);
    box-shadow: 0 0 0 0 rgba(166, 124, 46, 0.45);
    animation: ps-rc-pay-pulse 1.8s ease-in-out infinite;
}

@keyframes ps-rc-pay-pulse {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(166, 124, 46, 0.42);
    }
    50% {
        box-shadow: 0 0 0 6px rgba(166, 124, 46, 0);
    }
}

.ps-recharge-pay-actions {
    display: grid;
    grid-template-columns: 1fr 1.35fr;
    gap: 10px;
    padding: 18px 22px 22px;
}

.ps-recharge-pay-panel.is-scanning .ps-recharge-pay-actions {
    grid-template-columns: 1fr;
}

.ps-recharge-pay-actions #rechargePaySubmit[hidden] {
    display: none !important;
}

.ps-recharge-pay-actions .ps-btn {
    min-height: var(--ps-touch, 44px);
    border-radius: 999px;
}

.ps-recharge-pay-submit {
    border: 1.5px solid color-mix(in srgb, var(--ps-accent) 55%, transparent);
    background: rgba(255, 252, 248, 0.82);
    color: var(--ps-accent);
    font-weight: 700;
    box-shadow: inset 0 1px 0 rgba(255, 252, 248, 0.95);
    transition:
        background 0.22s ease,
        border-color 0.22s ease,
        color 0.22s ease,
        box-shadow 0.22s ease,
        transform 0.18s var(--ps-ease, ease);
}

.ps-recharge-pay-submit:not(:disabled):hover {
    background: var(--ps-accent);
    border-color: var(--ps-accent);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(45, 90, 74, 0.22);
}

.ps-recharge-pay-submit:disabled {
    opacity: 0.55;
    cursor: wait;
}

@media (max-width: 480px) {
    .ps-recharge-pay-summary-row {
        flex-direction: column;
        align-items: stretch;
    }

    .ps-recharge-pay-price-box {
        align-self: flex-start;
    }

    .ps-recharge-pay-channels {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ps-recharge-pay-status-dot {
        animation: none;
    }

    .ps-recharge-pay-submit:not(:disabled):hover {
        transform: none;
    }
}

/* ?? Auth · login / register redesign ?? */

.ps-auth-body {
    height: 100%;
    min-height: 100dvh;
    overflow: hidden;
    background:
        radial-gradient(ellipse 72% 52% at 100% 0%, rgba(45, 90, 74, 0.07) 0%, transparent 58%),
        radial-gradient(ellipse 58% 42% at 0% 100%, rgba(154, 123, 47, 0.06) 0%, transparent 52%),
        var(--ps-bg);
}

.ps-auth-body::before {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    opacity: 0.34;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
    z-index: 0;
}

.ps-auth-shell {
    position: relative;
    z-index: 1;
    height: 100%;
    max-height: 100dvh;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
}

.ps-auth-visual {
    position: relative;
    display: flex;
    align-items: center;
    padding: clamp(36px, 6vw, 72px);
    color: var(--ps-ink);
    overflow: hidden;
    background:
        radial-gradient(ellipse 70% 90% at 0% 0%, rgba(45, 90, 74, 0.12) 0%, transparent 58%),
        radial-gradient(ellipse 55% 70% at 100% 100%, rgba(196, 162, 78, 0.1) 0%, transparent 55%),
        linear-gradient(158deg, #FFFCF8 0%, var(--ps-surface) 52%, var(--ps-surface-2) 100%);
    border-right: 1px solid var(--ps-border);
}

.ps-auth-visual-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.ps-auth-visual-sweep {
    position: absolute;
    top: -50%;
    right: -18%;
    width: 58%;
    height: 200%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.16), transparent);
    animation: up-gf-vault-sweep 9s ease-in-out infinite;
}

.ps-auth-visual-mark {
    position: absolute;
    top: -48px;
    right: -36px;
    width: min(280px, 44vw);
    height: min(280px, 44vw);
    opacity: 0.34;
    filter: drop-shadow(0 18px 36px rgba(45, 90, 74, 0.12));
}

.ps-auth-visual-mark .ps-brand-mark-wrap {
    --mark-size: 100%;
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
}

.ps-auth-visual-inner {
    position: relative;
    z-index: 1;
    max-width: 440px;
}

.ps-auth-visual-inner h1 {
    margin: 18px 0 14px;
    font-family: system-ui, -apple-system, 'Microsoft YaHei', 'PingFang SC', sans-serif;
    font-size: clamp(34px, 5.8vw, 52px);
    font-weight: 800;
    line-height: 1.04;
    letter-spacing: -0.04em;
    text-wrap: pretty;
    color: var(--ps-ink);
}

.ps-auth-visual-inner h1 em {
    font-style: normal;
    display: block;
    margin-top: 6px;
    background: linear-gradient(128deg, #8F6E22 8%, #B8923A 42%, #D4B56A 58%, #2D5A4A 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.ps-auth-visual-inner > p {
    margin: 0;
    max-width: 36ch;
    font-size: 15px;
    line-height: 1.65;
    color: var(--ps-ink-muted);
}

.ps-auth-body .ps-auth-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 12px 7px 8px;
    border-radius: 999px;
    border: 1px solid rgba(45, 90, 74, 0.12);
    background: rgba(255, 252, 248, 0.72);
    box-shadow: inset 0 1px 0 rgba(255, 252, 248, 0.95);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ps-accent);
}

.ps-auth-body .ps-auth-tag .ps-brand-mark-wrap {
    --mark-size: 28px;
    width: var(--mark-size);
    height: var(--mark-size);
    filter: drop-shadow(0 4px 10px rgba(45, 90, 74, 0.16));
}

.ps-auth-features {
    display: grid;
    gap: 10px;
    margin: 28px 0 0;
    padding: 0;
    list-style: none;
}

.ps-auth-features li {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    align-items: start;
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(255, 252, 248, 0.58);
    border: 1px solid rgba(30, 27, 22, 0.06);
    font-size: 13px;
    line-height: 1.5;
    color: var(--ps-ink-muted);
}

.ps-auth-features li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    border-radius: 8px;
    background: var(--ps-accent-soft);
    font-family: system-ui, -apple-system, 'Microsoft YaHei', 'PingFang SC', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--ps-accent);
}

.ps-auth-panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: clamp(24px, 4vw, 40px) clamp(20px, 4vw, 36px);
}

.ps-auth-mobile-brand {
    display: none;
    align-items: center;
    gap: 12px;
    width: 100%;
    max-width: 440px;
    margin: 0 auto 16px;
    padding: 12px 14px;
    border-radius: 16px;
    background: rgba(255, 252, 248, 0.82);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
}

.ps-auth-mobile-brand .ps-brand-mark-wrap {
    --mark-size: 40px;
    width: var(--mark-size);
    height: var(--mark-size);
    flex-shrink: 0;
}

.ps-auth-mobile-brand strong {
    display: block;
    font-family: system-ui, -apple-system, 'Microsoft YaHei', 'PingFang SC', sans-serif;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--ps-ink);
}

.ps-auth-mobile-brand span {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    color: var(--ps-ink-faint);
}

.ps-auth-card {
    width: 100%;
    max-width: 440px;
    padding: 28px 26px 24px;
    border-radius: calc(var(--ps-radius-xl) + 2px);
    background:
        linear-gradient(180deg, rgba(255, 252, 248, 0.98) 0%, rgba(255, 252, 248, 0.92) 100%);
    border: 1px solid rgba(30, 27, 22, 0.08);
    box-shadow:
        0 1px 0 rgba(255, 252, 248, 0.95) inset,
        0 18px 48px rgba(30, 27, 22, 0.08);
}

.ps-auth-card-head {
    margin-bottom: 22px;
}

.ps-auth-card-head .ps-kicker {
    margin: 0 0 10px;
}

.ps-auth-body .ps-auth-title {
    margin: 0;
    font-family: system-ui, -apple-system, 'Microsoft YaHei', 'PingFang SC', sans-serif;
    font-size: clamp(24px, 4vw, 30px);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.15;
    color: var(--ps-ink);
}

.ps-auth-body .ps-auth-sub {
    margin: 8px 0 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--ps-ink-muted);
}

.ps-auth-body .ps-tip {
    margin-bottom: 16px;
}

.ps-auth-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.ps-auth-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.ps-auth-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.ps-auth-field-label {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--ps-ink-muted);
}

.ps-auth-field-control {
    position: relative;
    display: flex;
    align-items: center;
    min-height: var(--ps-touch, 44px);
    border-radius: 12px;
    overflow: hidden;
    background: var(--ps-surface);
    border: 1px solid var(--ps-border-strong);
    box-shadow: inset 0 1px 0 rgba(255, 252, 248, 0.95);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.ps-auth-field-control:focus-within {
    border-color: rgba(45, 90, 74, 0.34);
    box-shadow:
        inset 0 1px 0 rgba(255, 252, 248, 0.95),
        0 0 0 3px rgba(45, 90, 74, 0.08);
}

.ps-auth-field-control .layui-icon {
    flex-shrink: 0;
    width: 42px;
    text-align: center;
    font-size: 16px;
    color: var(--ps-ink-faint);
    transition: color 0.2s ease;
}

.ps-auth-field-control:focus-within .layui-icon {
    color: var(--ps-accent);
}

.ps-auth-field-control input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: var(--ps-touch, 44px);
    padding: 0 14px 0 0;
    border: 0;
    background: transparent;
    color: var(--ps-ink);
}

.ps-auth-field-control input:focus {
    outline: none;
}

.ps-auth-field-control input::placeholder {
    color: var(--ps-ink-faint);
}

/* ????????? */
.ps-auth-field-control input:-webkit-autofill,
.ps-auth-field-control input:-webkit-autofill:hover,
.ps-auth-field-control input:-webkit-autofill:focus,
.ps-auth-field-control input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 30px rgba(42, 39, 34, 0.9) inset !important;
    -webkit-text-fill-color: var(--ps-ink) !important;
    caret-color: var(--ps-ink);
    transition: background-color 5000s ease-in-out 0s;
}
[data-theme="light"] .ps-auth-field-control input:-webkit-autofill,
[data-theme="light"] .ps-auth-field-control input:-webkit-autofill:hover,
[data-theme="light"] .ps-auth-field-control input:-webkit-autofill:focus,
[data-theme="light"] .ps-auth-field-control input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 30px #fff inset !important;
    -webkit-text-fill-color: var(--ps-ink) !important;
}

.ps-auth-optional {
    border-radius: 14px;
    border: 1px dashed color-mix(in srgb, var(--ps-ink) 14%, transparent);
    background: rgba(243, 238, 230, 0.42);
    overflow: hidden;
}

.ps-auth-optional > summary {
    display: flex;
    align-items: center;
    min-height: 42px;
    padding: 0 14px;
    font-size: 13px;
    font-weight: 600;
    color: var(--ps-ink-muted);
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.ps-auth-optional > summary::-webkit-details-marker {
    display: none;
}

.ps-auth-optional > summary::after {
    content: '+';
    margin-left: auto;
    font-family: system-ui, -apple-system, 'Microsoft YaHei', 'PingFang SC', sans-serif;
    font-size: 18px;
    line-height: 1;
    color: var(--ps-ink-faint);
    transition: transform 0.2s ease;
}

.ps-auth-optional[open] > summary::after {
    transform: rotate(45deg);
}

.ps-auth-optional-body {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 0 14px 14px;
}

.ps-auth-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: calc(var(--ps-touch, 44px) + 2px);
    margin-top: 4px;
    padding: 0 18px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--ps-accent) 0%, #356B58 100%);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.02em;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(45, 90, 74, 0.22);
    transition:
        transform 0.18s var(--ps-ease, ease),
        box-shadow 0.22s ease,
        background 0.22s ease;
}

.ps-auth-submit .layui-icon {
    font-size: 14px;
    opacity: 0.88;
    transition: transform 0.18s ease;
}

.ps-auth-submit:hover {
    background: linear-gradient(135deg, var(--ps-accent-hover) 0%, #2D5A4A 100%);
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(45, 90, 74, 0.26);
}

.ps-auth-submit:hover .layui-icon {
    transform: translateX(2px);
}

.ps-auth-submit:active {
    transform: translateY(0);
}

.ps-auth-submit:focus-visible {
    outline: 2px solid var(--ps-accent);
    outline-offset: 3px;
}

.ps-auth-body .ps-auth-links {
    margin-top: 20px;
    text-align: center;
    font-size: 13px;
    color: var(--ps-ink-muted);
}

.ps-auth-body .ps-auth-links a {
    color: inherit;
    font-weight: 500;
}

.ps-auth-body .ps-auth-links em {
    font-style: normal;
    font-weight: 700;
    color: var(--ps-accent);
}

.ps-auth-body .ps-auth-foot {
    margin-top: 22px;
    font-size: 12px;
    letter-spacing: 0.04em;
    color: var(--ps-ink-faint);
}

@media (max-width: 960px) {
    .ps-auth-shell {
        grid-template-columns: 1fr;
    }

    .ps-auth-visual {
        display: none;
    }

    .ps-auth-mobile-brand {
        display: flex;
    }

    .ps-auth-panel {
        justify-content: flex-start;
        padding-top: max(28px, env(safe-area-inset-top));
    }
}

@media (max-width: 560px) {
    .ps-auth-form-grid {
        grid-template-columns: 1fr;
    }

    .ps-auth-card {
        padding: 22px 18px 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ps-auth-visual-sweep {
        animation: none;
    }

    .ps-auth-submit:hover {
        transform: none;
    }

    .ps-auth-submit:hover .layui-icon {
        transform: none;
    }
}

/* ?? Scrollbars????? scroll-stable ????????????? ?? */#userMain,.ps-side-nav,.ps-auth-panel {    scrollbar-gutter: stable;    scrollbar-width: thin;    scrollbar-color: rgba(100, 116, 139, 0.35) transparent;}#userMain::-webkit-scrollbar,.ps-side-nav::-webkit-scrollbar,.ps-auth-panel::-webkit-scrollbar,.ps-shop-tabs::-webkit-scrollbar {    width: 6px;    height: 6px;}#userMain::-webkit-scrollbar-track,.ps-side-nav::-webkit-scrollbar-track,.ps-auth-panel::-webkit-scrollbar-track,.ps-shop-tabs::-webkit-scrollbar-track {    background: transparent;}#userMain::-webkit-scrollbar-thumb,.ps-side-nav::-webkit-scrollbar-thumb,.ps-auth-panel::-webkit-scrollbar-thumb,.ps-shop-tabs::-webkit-scrollbar-thumb {    background: rgba(100, 116, 139, 0.32);    border-radius: 999px;}#userMain::-webkit-scrollbar-thumb:hover,.ps-side-nav::-webkit-scrollbar-thumb:hover,.ps-auth-panel::-webkit-scrollbar-thumb:hover,.ps-shop-tabs::-webkit-scrollbar-thumb:hover {    background: rgba(100, 116, 139, 0.48);}@supports not (scrollbar-gutter: stable) {    #userMain,    .ps-side-nav,    .ps-auth-panel {        overflow-y: scroll;    }}



/* ?? ?????? · ????? ?? */
.ps-lottery-prize-detail-list.is-show-prob .ps-pass-reward-detail-item {
    grid-template-columns: auto auto minmax(0, 1fr);
    flex-shrink: 0;
}

.ps-lottery-prize-detail-list.is-show-prob .ps-pass-reward-detail-item.no-type-tag:not(.has-reward-icon) {
    grid-template-columns: auto auto minmax(0, 1fr);
}

.ps-lottery-prize-detail-list.is-show-prob .ps-pass-reward-detail-item.no-type-tag:not(.has-reward-icon) .ps-pass-reward-detail-name {
    grid-column: 1;
    grid-row: 1;
}

.ps-lottery-prize-detail-list.is-show-prob .ps-pass-reward-detail-item.no-type-tag:not(.has-reward-icon) .ps-pass-reward-detail-qty {
    grid-column: 2;
    grid-row: 1;
}

.ps-lottery-prize-detail-list.is-show-prob .ps-pass-reward-detail-item.no-type-tag:not(.has-reward-icon) .ps-pass-reward-detail-rarity {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
}

.ps-pass-reward-detail-rarity {
    flex-shrink: 0;
    min-width: 48px;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-align: center;
    line-height: 1.35;
    white-space: nowrap;
    border: 1px solid transparent;
}

.ps-pass-reward-detail-rarity.is-rarity-legendary {
    color: #7A5210;
    background: var(--ps-gold-soft);
    border-color: rgba(154, 123, 47, 0.24);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
}

.ps-pass-reward-detail-rarity.is-rarity-rare {
    color: #2E4A72;
    background: var(--ps-sapphire-soft);
    border-color: rgba(61, 90, 128, 0.2);
}

.ps-pass-reward-detail-rarity.is-rarity-uncommon {
    color: #234539;
    background: var(--ps-accent-soft);
    border-color: rgba(45, 90, 74, 0.18);
}

.ps-pass-reward-detail-rarity.is-rarity-common {
    color: var(--ps-ink-faint);
    background: rgba(255, 255, 255, 0.62);
    border-color: rgba(30, 27, 22, 0.08);
}

.ps-pass-reward-detail-rarity.is-empty {
    opacity: 0.45;
}

.ps-lottery-prize-detail-list .ps-pass-reward-detail-item:has(.is-rarity-legendary) {
    border-color: rgba(154, 123, 47, 0.14);
}

.ps-lottery-prize-detail-list .ps-pass-reward-detail-item:has(.is-rarity-rare) {
    border-color: rgba(61, 90, 128, 0.12);
}

.ps-lottery-prize-detail-list .ps-pass-reward-detail-item:has(.is-rarity-legendary):hover {
    background: rgba(154, 123, 47, 0.05);
}

.ps-lottery-prize-detail-list .ps-pass-reward-detail-item:has(.is-rarity-rare):hover {
    background: rgba(61, 90, 128, 0.04);
}

.ps-pass-reward-detail-item.has-reward-icon {
    grid-template-columns: 36px auto 1fr auto;
}

.ps-pass-reward-detail-item.has-reward-icon.no-type-tag {
    grid-template-columns: 36px 1fr auto;
}

.ps-pass-reward-detail-item.no-type-tag:not(.has-reward-icon) {
    grid-template-columns: 1fr auto;
}

.ps-pass-reward-detail-item.no-type-tag:not(.has-reward-icon) .ps-pass-reward-detail-name {
    grid-column: 1;
}

.ps-pass-reward-detail-item.no-type-tag:not(.has-reward-icon) .ps-pass-reward-detail-qty {
    grid-column: 2;
}

.ps-pass-reward-detail-icon {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(30, 27, 22, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
}

.ps-pass-reward-detail-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

/* ?? ?????? · ???? ?? */
.ps-giftpack-reward-detail .ps-pass-reward-detail-head {
    padding: 16px 22px 12px;
}

.ps-giftpack-reward-detail .ps-pass-reward-detail-body {
    gap: 6px;
}

.ps-giftpack-reward-detail .ps-pass-reward-detail-item {
    flex-shrink: 0;
}

.ps-giftpack-reward-detail .ps-pass-reward-detail-item.has-reward-icon.no-type-tag {
    grid-template-columns: 36px minmax(0, 1fr) auto;
}

.ps-giftpack-reward-detail .ps-pass-reward-detail-item.has-reward-icon.no-type-tag .ps-pass-reward-detail-icon {
    grid-column: 1;
}

.ps-giftpack-reward-detail .ps-pass-reward-detail-item.has-reward-icon.no-type-tag .ps-pass-reward-detail-name {
    grid-column: 2;
}

.ps-giftpack-reward-detail .ps-pass-reward-detail-item.has-reward-icon.no-type-tag .ps-pass-reward-detail-qty {
    grid-column: 3;
}

/* ?? ?????? · ???? ?? */
.ps-signin-reward-detail-item.has-reward-icon {
    grid-template-columns: 36px minmax(0, 1fr) auto;
}

.ps-signin-reward-detail-item.is-item:not(.has-reward-icon) {
    grid-template-columns: minmax(0, 1fr) auto;
}

.ps-signin-reward-detail-item.is-gold,
.ps-signin-reward-detail-item.is-diamond {
    grid-template-columns: auto minmax(0, 1fr) auto;
}

.ps-signin-reward-detail-icon {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(30, 27, 22, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
}

.ps-signin-reward-detail-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.ps-signin-reward-detail-qty {
    flex-shrink: 0;
    min-width: 36px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    text-align: center;
    color: var(--ps-ink-muted);
    background: rgba(255, 255, 255, 0.65);
    border: 1px solid rgba(30, 27, 22, 0.06);
}

.ps-signin-reward-detail-item.is-gold .ps-signin-reward-detail-qty {
    color: #8B6914;
    background: rgba(255, 252, 248, 0.9);
    border-color: rgba(154, 123, 47, 0.14);
}

.ps-signin-reward-detail-item.is-diamond .ps-signin-reward-detail-qty {
    color: #2A6B8A;
}

/* ?? ?????? ?? */
[data-theme="dark"] .ps-brand-mark {
    filter: brightness(1.35) saturate(1.15);
}
[data-theme="dark"] .ps-side-brand-word.is-gold {
    background: linear-gradient(128deg, #D4B56A 8%, #F0E2B8 42%, #FFEEB8 62%, #C9A84C 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
[data-theme="dark"] .ps-side-brand {
    background: rgba(22, 20, 16, 0.82);
}
[data-theme="dark"] .up-hm-vault {
    background: var(--ps-surface);
}
[data-theme="dark"] .up-hm-vault-bg::after { display: none; }
[data-theme="dark"] .ps-body {
    background: var(--ps-bg);
}
[data-theme="dark"] .ps-body::before { opacity: 0.08; }
[data-theme="dark"] .ps-topbar { background: rgba(22, 20, 16, 0.82); }
[data-theme="dark"] .ps-topbar-hud {
    background: rgba(42, 39, 34, 0.85);
    border-color: rgba(228, 224, 218, 0.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 8px 24px rgba(0, 0, 0, 0.2);
}
[data-theme="dark"] .ps-topbar-hud::after { opacity: 0.28; }
[data-theme="dark"] .ps-topbar-hud-blob--gold { background: rgba(212, 181, 106, 0.22); opacity: 0.6; }
[data-theme="dark"] .ps-topbar-hud-blob--gem { background: rgba(122, 158, 196, 0.18); opacity: 0.6; }
[data-theme="dark"] .ps-topbar-hud-stat + .ps-topbar-hud-stat { border-left-color: rgba(255, 255, 255, 0.06); }
[data-theme="dark"] .ps-topbar-account {
    background: rgba(42, 39, 34, 0.88);
    border-color: rgba(228, 224, 218, 0.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
[data-theme="dark"] .ps-topbar-account:hover {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 10px 26px rgba(0, 0, 0, 0.25);
}
[data-theme="dark"] .ps-icon-btn {
    background: rgba(42, 39, 34, 0.85);
    border-color: rgba(228, 224, 218, 0.08);
    color: rgba(228, 224, 218, 0.7);
}
[data-theme="dark"] .up-lt-metric { background: rgba(42, 39, 34, 0.75); border-color: rgba(255, 255, 255, 0.06); }
[data-theme="dark"] .up-lt-metric.is-live { border-color: rgba(74, 168, 125, 0.25); }
[data-theme="dark"] .up-hm-srv-console {
    background: linear-gradient(180deg, rgba(36, 33, 28, 0.98) 0%, rgba(28, 26, 22, 0.95) 100%);
    border-color: rgba(228, 224, 218, 0.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 14px 32px rgba(0, 0, 0, 0.25);
}
[data-theme="dark"] .up-hm-srv-console-board {
    background: rgba(36, 33, 28, 0.55);
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .up-hm-server-live {
    background: rgba(36, 33, 28, 0.9);
    border-color: rgba(228, 224, 218, 0.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
[data-theme="dark"] .up-hm-server-live-dot { box-shadow: 0 0 0 2px rgba(74, 168, 125, 0.2); }
[data-theme="dark"] .up-hm-server-live.is-busy .up-hm-server-live-dot { box-shadow: 0 0 0 2px rgba(201, 168, 76, 0.25); }
[data-theme="dark"] .up-hm-srv-console-top { border-bottom-color: rgba(255, 255, 255, 0.06); }
[data-theme="dark"] .up-hm-srv-zone:hover { background: rgba(52, 49, 44, 0.85); }
[data-theme="dark"] .up-hm-deck { background: var(--ps-surface); }
[data-theme="dark"] .up-hm-deck-badge { background: rgba(42, 39, 34, 0.85); border-color: rgba(255, 255, 255, 0.06); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); }
[data-theme="dark"] .up-hm-deck-loading,
[data-theme="dark"] .up-hm-deck-error { background: rgba(28, 26, 22, 0.82); }
[data-theme="dark"] .up-hm-deck-scan { display: none; }
[data-theme="dark"] .up-hm-lane { background: rgba(36, 33, 28, 0.78); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04); border-color: rgba(255, 255, 255, 0.06); }
[data-theme="dark"] .up-hm-lane:hover { border-color: rgba(255, 255, 255, 0.10); }
[data-theme="dark"] .up-hm-lane-chart { background: rgba(28, 26, 22, 0.55); border-color: rgba(255, 255, 255, 0.05); }
[data-theme="dark"] .up-hm-lane-chart::before { background-image: linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px); opacity: 0.5; }
[data-theme="dark"] .up-hm-lane.is-online {
    --lane-core-mid: rgba(45, 90, 74, 0.55);
    --lane-core-deep: rgba(30, 65, 52, 0.85);
    --lane-accent-soft: rgba(45, 90, 74, 0.2);
}
[data-theme="dark"] .up-hm-lane.is-gold {
    --lane-core-mid: rgba(154, 123, 47, 0.5);
    --lane-core-deep: rgba(80, 65, 25, 0.85);
    --lane-accent-soft: rgba(196, 162, 78, 0.18);
}
[data-theme="dark"] .up-hm-lane.is-diamond {
    --lane-core-mid: rgba(61, 90, 128, 0.5);
    --lane-core-deep: rgba(30, 50, 75, 0.85);
    --lane-accent-soft: rgba(61, 90, 128, 0.18);
}
[data-theme="dark"] .up-hm-lane.is-shop {
    --lane-core-mid: rgba(58, 107, 82, 0.5);
    --lane-core-deep: rgba(30, 65, 45, 0.85);
    --lane-accent-soft: rgba(58, 107, 82, 0.18);
}
[data-theme="dark"] .up-hm-lane.is-lottery {
    --lane-core-mid: rgba(184, 92, 56, 0.5);
    --lane-core-deep: rgba(90, 42, 28, 0.85);
    --lane-accent-soft: rgba(184, 92, 56, 0.18);
}
[data-theme="dark"] .up-hm-orb-core {
    background:
        radial-gradient(circle at 30% 24%, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0.03) 18%, transparent 36%),
        radial-gradient(circle at 50% 62%, var(--lane-core-mid) 0%, var(--lane-core-deep) 100%);
    box-shadow:
        inset 0 -4px 8px var(--lane-accent-soft),
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        0 3px 10px var(--lane-glow);
    border-color: var(--lane-stroke);
}
[data-theme="dark"] .up-hm-lane:hover .up-hm-orb-core {
    box-shadow:
        inset 0 -4px 8px var(--lane-accent-soft),
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 5px 14px var(--lane-glow);
}
[data-theme="dark"] .up-hm-orb-core .layui-icon { filter: drop-shadow(0 1px 0 rgba(255, 255, 255, 0.12)); }
[data-theme="dark"] .ps-side-mask { background: rgba(0, 0, 0, 0.55); }
[data-theme="dark"] .ps-side { box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.04); }
[data-theme="dark"] .ps-card { background: var(--ps-surface); }
[data-theme="dark"] .ps-panel { background: var(--ps-surface); }
[data-theme="dark"] .ps-modal-panel {
    background: var(--ps-surface);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06) inset, 0 28px 72px rgba(0, 0, 0, 0.4);
}
[data-theme="dark"] .ps-modal-close {
    background: rgba(32, 30, 26, 0.82);
    border-color: rgba(228, 224, 218, 0.12);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
}
[data-theme="dark"] .ps-modal-close:hover { background: var(--ps-surface-2); color: var(--ps-ink); }
[data-theme="dark"] .ps-shop-confirm-stat { background: var(--ps-surface-2); border-color: rgba(255, 255, 255, 0.06); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04); }
[data-theme="dark"] .ps-shop-confirm-total { background: var(--ps-surface-2); border-color: rgba(255, 255, 255, 0.06); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04); }
[data-theme="dark"] .ps-shop-success-panel,
[data-theme="dark"] .ps-pass-feedback-panel {
    background: var(--ps-surface);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06) inset, 0 28px 72px rgba(0, 0, 0, 0.4);
}
[data-theme="dark"] .ps-shop-success-hero,
[data-theme="dark"] .ps-pass-feedback-hero { background: var(--ps-surface); }
[data-theme="dark"] .ps-shop-error-hero { background: var(--ps-surface); }
[data-theme="dark"] .ps-shop-success-check,
[data-theme="dark"] .ps-shop-error-badge {
    background: var(--ps-surface-2);
    border-color: rgba(228, 224, 218, 0.12);
}
[data-theme="dark"] .ps-shop-success-art,
[data-theme="dark"] .ps-shop-error-art { background: rgba(32, 30, 26, 0.95); }
[data-theme="dark"] .ps-pass-feedback-badge.is-success { background: var(--ps-surface-2); }
[data-theme="dark"] .ps-pass-feedback-badge.is-error { background: var(--ps-surface-2); border-color: rgba(184, 77, 77, 0.25); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2); }
[data-theme="dark"] .ps-pass-feedback-symbol { background: rgba(32, 30, 26, 0.95); }
[data-theme="dark"] .ps-pass-feedback.is-error .ps-pass-feedback-hero {
    background:
        radial-gradient(ellipse 80% 70% at 50% 0%, rgba(184, 77, 77, 0.06) 0%, transparent 68%),
        linear-gradient(180deg, rgba(42, 39, 34, 0.85) 0%, transparent 100%);
}
[data-theme="dark"] .ps-pass-feedback.is-error .ps-pass-feedback-msg { color: rgba(184, 77, 77, 0.7); }
[data-theme="dark"] .ps-pass-feedback.is-error .ps-pass-feedback-panel { border-color: rgba(184, 77, 77, 0.12); }
[data-theme="dark"] .ps-shop-confirm-art { background: var(--ps-surface-2); border-color: rgba(255, 255, 255, 0.06); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 12px 32px rgba(0, 0, 0, 0.25); }
[data-theme="dark"] .ps-shop-toolbar { background: var(--ps-surface-2); }
[data-theme="dark"] .ps-shop-card { background: var(--ps-surface); }
[data-theme="dark"] .ps-shop-card:hover { border-color: rgba(74, 168, 125, 0.3); }
[data-theme="dark"] .ps-shop-card-hero { background: var(--ps-surface-2); }
[data-theme="dark"] .ps-shop-card-qty-tag { background: rgba(32, 30, 26, 0.94); border-color: rgba(228, 224, 218, 0.1); }
[data-theme="dark"] .ps-shop-card-sold { background: rgba(32, 30, 26, 0.9); border-color: rgba(228, 224, 218, 0.08); }
[data-theme="dark"] .ps-shop-card-discount { background: rgba(32, 30, 26, 0.98); border-color: rgba(184, 77, 77, 0.15); }
[data-theme="dark"] .ps-shop-qty input:focus { background: rgba(42, 39, 34, 0.65); }
[data-theme="dark"] .ps-shop-qty input { color: var(--ps-ink); border-color: rgba(255, 255, 255, 0.08); }
[data-theme="dark"] .ps-shop-qty { border-color: rgba(255, 255, 255, 0.10); box-shadow: none; }
[data-theme="dark"] .ps-shop-qty-btn:hover { background: rgba(255, 255, 255, 0.04); }
[data-theme="dark"] .ps-shop-card-act { background: var(--ps-surface-2); }
[data-theme="dark"] .ps-bento-hero { box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35); }
[data-theme="dark"] .ps-online-dot { box-shadow: 0 0 0 3px rgba(76, 143, 110, 0.25); }
[data-theme="dark"] .ps-shortcut:hover { border-color: rgba(74, 168, 125, 0.2); }
[data-theme="dark"] .ps-pass-reward-detail-panel { box-shadow: 0 24px 64px rgba(0, 0, 0, 0.35); }
[data-theme="dark"] .ps-pass-reward-detail-item { background: var(--ps-surface-2); }
[data-theme="dark"] .ps-pass-reward-detail-item:hover { background: #2A2722; }
[data-theme="dark"] .ps-pass-reward-detail-tag { background: rgba(32, 30, 26, 0.72); }
[data-theme="dark"] .ps-pass-reward-detail-qty { background: rgba(32, 30, 26, 0.65); }
[data-theme="dark"] .ps-pass-reward-detail-item.is-gold .ps-pass-reward-detail-qty,
[data-theme="dark"] .ps-pass-reward-detail-item.is-diamond .ps-pass-reward-detail-qty,
[data-theme="dark"] .ps-pass-reward-detail-item.is-member .ps-pass-reward-detail-qty { background: rgba(32, 30, 26, 0.9); }
[data-theme="dark"] .ps-pass-reward-detail-item.is-gold .ps-pass-reward-detail-tag { background: rgba(201, 168, 76, 0.15); }
[data-theme="dark"] .ps-pass-reward-detail-item.is-diamond .ps-pass-reward-detail-tag { background: rgba(106, 148, 196, 0.12); }
[data-theme="dark"] .ps-pass-reward-detail-item.is-member .ps-pass-reward-detail-tag { background: rgba(74, 168, 125, 0.15); }
[data-theme="dark"] .ps-pass-reward-detail-item.is-item .ps-pass-reward-detail-tag { background: rgba(32, 30, 26, 0.8); }
[data-theme="dark"] .ps-pass-reward-detail-btn { background: rgba(228, 224, 218, 0.06); color: var(--ps-ink-muted); }
[data-theme="dark"] .ps-pass-reward-detail-btn:hover { background: rgba(74, 168, 125, 0.1); color: var(--ps-accent); }
[data-theme="dark"] .ps-pass-reward-detail-lv { border-color: rgba(42, 39, 34, 0.92); box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2); }
[data-theme="dark"] .ps-pass-reward-detail-lv span { color: rgba(228, 224, 218, 0.5); }
[data-theme="dark"] .ps-pass-reward-detail-item { border-color: rgba(228, 224, 218, 0.06); }
[data-theme="dark"] .ps-pass-reward-detail-item:hover { border-color: rgba(228, 224, 218, 0.1); }
[data-theme="dark"] .ps-pass-reward-detail-stamp { background: rgba(42, 39, 34, 0.72); color: rgba(228, 224, 218, 0.3); border-color: rgba(228, 224, 218, 0.2); }
[data-theme="dark"] .ps-pass-reward-detail-icon { background: rgba(32, 30, 26, 0.85); border-color: rgba(228, 224, 218, 0.08); }
[data-theme="dark"] .ps-pass-reward-detail-qty { border-color: rgba(228, 224, 218, 0.06); }
[data-theme="dark"] .ps-pass-reward-detail-tag { border-color: rgba(228, 224, 218, 0.06); }
[data-theme="dark"] .ps-pass-reward-detail-item.is-gold .ps-pass-reward-detail-tag { border-color: rgba(201, 168, 76, 0.14); }
[data-theme="dark"] .ps-pass-reward-detail-item.is-diamond .ps-pass-reward-detail-tag { border-color: rgba(106, 148, 196, 0.14); }
[data-theme="dark"] .ps-pass-reward-detail-item.is-member .ps-pass-reward-detail-tag { border-color: rgba(74, 168, 125, 0.12); }
[data-theme="dark"] .ps-pass-reward-detail-item.is-gold .ps-pass-reward-detail-qty { border-color: rgba(201, 168, 76, 0.16); background: rgba(32, 30, 26, 0.9); }
[data-theme="dark"] .ps-pass-reward-detail-item.is-diamond .ps-pass-reward-detail-qty { border-color: rgba(106, 148, 196, 0.16); background: rgba(32, 30, 26, 0.9); }
[data-theme="dark"] .ps-pass-reward-detail-item.is-member .ps-pass-reward-detail-qty { border-color: rgba(74, 168, 125, 0.14); background: rgba(32, 30, 26, 0.9); }
[data-theme="dark"] .ps-pass-reward-detail-panel.is-tier-claimable .ps-pass-reward-detail-lv { box-shadow: 0 0 0 4px rgba(74, 168, 125, 0.12), 0 4px 14px rgba(74, 168, 125, 0.22); }
[data-theme="dark"] .ps-pass-reward-detail-panel.is-tier-claimable .ps-pass-reward-detail-lv span { color: #1C1A17; }
[data-theme="dark"] .ps-pass-reward-detail-panel.is-tier-claimed .ps-pass-reward-detail-lv { background: rgba(58, 80, 68, 0.7); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); }
[data-theme="dark"] .ps-pass-reward-detail-panel.is-tier-claimed .ps-pass-reward-detail-lv span { color: rgba(228, 224, 218, 0.45); }
[data-theme="dark"] .ps-pass-reward-detail-panel.is-tier-near .ps-pass-reward-detail-lv { box-shadow: 0 0 0 4px rgba(201, 168, 76, 0.14); }
[data-theme="dark"] .ps-pass-reward-detail-panel.is-tier-near .ps-pass-reward-detail-lv span { color: rgba(201, 168, 76, 0.85); }
[data-theme="dark"] .ps-pass-reward-detail-panel.is-tier-locked .ps-pass-reward-detail-lv { background: rgba(42, 39, 34, 0.55); }
[data-theme="dark"] .ps-pass-reward-detail-panel.is-tier-locked .ps-pass-reward-detail-lv span { color: rgba(228, 224, 218, 0.25); }
[data-theme="dark"] .ps-pass-reward-detail-meta em { color: var(--ps-ink); }
[data-theme="dark"] .ps-pass-reward-detail-badge.is-locked { color: rgba(228, 224, 218, 0.4); background: rgba(228, 224, 218, 0.04); border-color: rgba(228, 224, 218, 0.08); }
/* ?? Rarity tags dark ?? */
[data-theme="dark"] .ps-pass-reward-detail-rarity.is-rarity-legendary {
    color: #E8C84A;
    background: rgba(201, 168, 76, 0.15);
    border-color: rgba(201, 168, 76, 0.2);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
[data-theme="dark"] .ps-pass-reward-detail-rarity.is-rarity-rare {
    color: #7AADDB;
    background: rgba(106, 148, 196, 0.12);
    border-color: rgba(106, 148, 196, 0.16);
}
[data-theme="dark"] .ps-pass-reward-detail-rarity.is-rarity-uncommon {
    color: #4AA87D;
    background: rgba(74, 168, 125, 0.1);
    border-color: rgba(74, 168, 125, 0.14);
}
[data-theme="dark"] .ps-pass-reward-detail-rarity.is-rarity-common {
    color: rgba(228, 224, 218, 0.55);
    background: rgba(42, 39, 34, 0.5);
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .ps-shop-confirm-hero { background: var(--ps-surface-2); }
[data-theme="dark"] .ps-recharge-card { background: var(--ps-surface-2); }
[data-theme="dark"] .ps-shop-search input:focus { background: var(--ps-surface-2); }
[data-theme="dark"] .ps-signin-reward-detail-item { background: var(--ps-surface-2); }
[data-theme="dark"] .ps-signin-reward-detail-item:hover { background: #2A2722; }
[data-theme="dark"] .ps-signin-reward-detail-tag { background: rgba(32, 30, 26, 0.72); }
[data-theme="dark"] .ps-signin-reward-detail-qty { background: rgba(32, 30, 26, 0.65); }
[data-theme="dark"] .ps-signin-reward-detail-item.is-gold .ps-signin-reward-detail-qty,
[data-theme="dark"] .ps-signin-reward-detail-item.is-diamond .ps-signin-reward-detail-qty,
[data-theme="dark"] .ps-signin-reward-detail-item.is-member .ps-signin-reward-detail-qty { background: rgba(32, 30, 26, 0.9); }
[data-theme="dark"] .ps-signin-reward-detail-item.is-gold .ps-signin-reward-detail-tag { background: rgba(201, 168, 76, 0.15); }
[data-theme="dark"] .ps-signin-reward-detail-item.is-diamond .ps-signin-reward-detail-tag { background: rgba(106, 148, 196, 0.12); }
[data-theme="dark"] .ps-signin-reward-detail-item.is-member .ps-signin-reward-detail-tag { background: rgba(74, 168, 125, 0.15); }
[data-theme="dark"] .ps-signin-reward-detail-item.is-item .ps-signin-reward-detail-tag { background: rgba(32, 30, 26, 0.8); }
[data-theme="dark"] .ps-signin-reward-detail-tier {
    background: rgba(201, 168, 76, 0.18);
    border-color: rgba(42, 39, 34, 0.92);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}
[data-theme="dark"] .ps-signin-reward-detail-panel.is-claimed .ps-signin-reward-detail-tier {
    background: rgba(58, 80, 68, 0.7);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
[data-theme="dark"] .ps-signin-reward-detail-panel.is-pending .ps-signin-reward-detail-tier {
    background: rgba(74, 168, 125, 0.15);
    box-shadow: 0 0 0 4px rgba(74, 168, 125, 0.1);
}
[data-theme="dark"] .ps-signin-reward-detail-icon {
    background: rgba(32, 30, 26, 0.85);
    border-color: rgba(228, 224, 218, 0.08);
}
[data-theme="dark"] .ps-signin-reward-detail-qty {
    color: rgba(228, 224, 218, 0.5);
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .ps-signin-reward-detail-item.is-gold .ps-signin-reward-detail-qty {
    color: #B8923A;
    border-color: rgba(201, 168, 76, 0.16);
}
[data-theme="dark"] .ps-signin-reward-detail-item.is-diamond .ps-signin-reward-detail-qty {
    color: rgba(106, 148, 196, 0.75);
}
[data-theme="dark"] .ps-signin-reward-detail-item.is-item .ps-signin-reward-detail-qty {
    color: rgba(228, 224, 218, 0.5);
    background: rgba(32, 30, 26, 0.65);
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .ps-signin-reward-detail-list::-webkit-scrollbar {
    width: 6px;
}
[data-theme="dark"] .ps-signin-reward-detail-list::-webkit-scrollbar-track {
    background: transparent;
}
[data-theme="dark"] .ps-signin-reward-detail-list::-webkit-scrollbar-thumb {
    background: rgba(228, 224, 218, 0.1);
    border-radius: 999px;
}
[data-theme="dark"] .ps-signin-reward-detail-list::-webkit-scrollbar-thumb:hover {
    background: rgba(228, 224, 218, 0.18);
}
[data-theme="dark"] .ps-signin-reward-detail-stamp {
    color: rgba(228, 224, 218, 0.25);
    background: rgba(42, 39, 34, 0.6);
    border-color: rgba(228, 224, 218, 0.12);
}
[data-theme="dark"] .ps-recharge-pay-summary,
[data-theme="dark"] .ps-recharge-pay-body,
[data-theme="dark"] .ps-recharge-pay-actions { background: transparent; }
[data-theme="dark"] .ps-recharge-pay-scan-frame { background: var(--ps-surface-2); border-color: var(--ps-border); }
[data-theme="dark"] .ps-recharge-pay-channels .ps-recharge-pay-channel { background: var(--ps-surface-2); border-color: var(--ps-border); }
[data-theme="dark"] .ps-recharge-pay-channels .ps-recharge-pay-channel:hover { background: var(--ps-surface); border-color: var(--ps-accent); }
/* ?? ??????????????? ?? */
[data-theme="dark"] .up-hm-vault { background: var(--ps-surface); }
[data-theme="dark"] .up-hm-vault-bg::after { display: none; }
[data-theme="dark"] .up-gf-vault-bg::after, [data-theme="dark"] .up-gf-stat-bg::after, [data-theme="dark"] .up-gf-seal-bg::after,
[data-theme="dark"] .up-an-header-bg::after, [data-theme="dark"] .up-lt-hero-bg::after,
[data-theme="dark"] .ps-shop-card-hero::before, [data-theme="dark"] .ps-shop-confirm-hero::before,
[data-theme="dark"] .ps-shop-confirm-hero::after, [data-theme="dark"] .ps-shop-card-hero::after { display: none; }
[data-theme="dark"] .ps-shop-card-hero { background: var(--ps-surface-2); }
[data-theme="dark"] .up-gf-vault { background: var(--ps-surface); }
[data-theme="dark"] .up-gf-crate {
    border-color: rgba(228, 224, 218, 0.08);
}
[data-theme="dark"] .up-gf-crate-seal-col {
    background: linear-gradient(180deg, rgba(42, 39, 34, 0.55) 0%, rgba(42, 39, 34, 0.3) 100%);
    border-right-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .up-gf-crate-foot {
    background: linear-gradient(180deg, rgba(42, 39, 34, 0.5) 0%, rgba(42, 39, 34, 0.25) 100%);
    border-left-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .up-gf-crate-state {
    background: rgba(42, 39, 34, 0.72);
    border-color: rgba(228, 224, 218, 0.08);
    color: rgba(228, 224, 218, 0.5);
}
[data-theme="dark"] .up-gf-crate-state.is-claimable {
    color: rgba(74, 168, 125, 0.85);
    background: rgba(74, 168, 125, 0.12);
    border-color: rgba(74, 168, 125, 0.16);
    box-shadow: 0 0 14px rgba(74, 168, 125, 0.1);
}
[data-theme="dark"] .up-gf-crate-state.is-claimable::before {
    background: rgba(74, 168, 125, 0.85);
    box-shadow: 0 0 8px rgba(74, 168, 125, 0.4);
}
[data-theme="dark"] .up-gf-crate-state.is-claimed {
    border-color: rgba(74, 168, 125, 0.3);
    background: rgba(42, 39, 34, 0.7);
    color: rgba(74, 168, 125, 0.55);
}
[data-theme="dark"] .up-gf-crate.is-done {
    opacity: 0.82;
}
[data-theme="dark"] .up-gf-crate.is-done .up-gf-crate-seal-col {
    background: linear-gradient(180deg, rgba(42, 39, 34, 0.5) 0%, rgba(28, 26, 22, 0.35) 100%);
}
[data-theme="dark"] .is-activities .up-gf-crate.is-joined .up-gf-crate-seal-col {
    background: linear-gradient(180deg, rgba(42, 39, 34, 0.55) 0%, rgba(154, 123, 47, 0.06) 100%);
}
[data-theme="dark"] .is-activities .up-gf-crate.is-no-reward .up-gf-crate-seal-col {
    background: linear-gradient(180deg, rgba(42, 39, 34, 0.5) 0%, rgba(154, 123, 47, 0.05) 100%);
}
[data-theme="dark"] .up-gf-crate.is-done .up-gf-crate-foot {
    background: linear-gradient(180deg, rgba(42, 39, 34, 0.45) 0%, rgba(28, 26, 22, 0.3) 100%);
}
[data-theme="dark"] .up-gf-crate.is-locked {
    opacity: 0.78;
}
[data-theme="dark"] .up-gf-crate.is-locked .up-gf-crate-seal-col {
    background: linear-gradient(180deg, rgba(42, 39, 34, 0.4) 0%, rgba(28, 26, 22, 0.25) 100%);
}
[data-theme="dark"] .up-gf-crate.is-locked .up-gf-crate-foot {
    background: linear-gradient(180deg, rgba(42, 39, 34, 0.35) 0%, rgba(28, 26, 22, 0.2) 100%);
}
[data-theme="dark"] .up-gf-crate.is-no-reward {
    opacity: 0.72;
}
/* ?? Crate seal inner elements dark ?? */
[data-theme="dark"] .up-gf-crate-seal-core {
    background: linear-gradient(155deg, #2A2722 0%, #1C1A17 100%);
    border-color: rgba(228, 224, 218, 0.08);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
}
[data-theme="dark"] .up-gf-crate-seal-core .layui-icon {
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}
[data-theme="dark"] .up-gf-crate-seal-ring {
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .up-gf-crate-seal-plinth {
    background: radial-gradient(ellipse, rgba(228, 224, 218, 0.08) 0%, transparent 72%);
    animation: none;
}
[data-theme="dark"] .up-gf-crate-seal-aurora {
    background: linear-gradient(90deg, transparent, rgba(228, 224, 218, 0.08), transparent);
    animation: none;
    opacity: 0.4;
}
[data-theme="dark"] .up-gf-crate-seal-orbit {
    animation: none;
}
[data-theme="dark"] .up-gf-crate-seal-orbit i {
    background: rgba(228, 224, 218, 0.25);
    box-shadow: 0 0 8px rgba(228, 224, 218, 0.15);
}
[data-theme="dark"] .up-gf-crate-seal-fx > * {
    opacity: 0;
}
/* ?? is-done seal overrides ?? */
[data-theme="dark"] .up-gf-crate.is-done .up-gf-crate-seal-core {
    background: linear-gradient(155deg, rgba(42, 39, 34, 0.7) 0%, rgba(28, 26, 22, 0.55) 100%);
    border-color: rgba(74, 168, 125, 0.12);
    box-shadow: none;
}
[data-theme="dark"] .up-gf-crate.is-done .up-gf-crate-seal-core .layui-icon {
    color: rgba(74, 168, 125, 0.4);
    filter: none;
}
/* ?? is-locked seal overrides ?? */
[data-theme="dark"] .up-gf-crate.is-locked .up-gf-crate-seal-core {
    background: linear-gradient(155deg, rgba(42, 39, 34, 0.55) 0%, rgba(28, 26, 22, 0.45) 100%);
    border-color: rgba(228, 224, 218, 0.06);
    box-shadow: none;
}
[data-theme="dark"] .up-gf-crate.is-locked .up-gf-crate-seal-core .layui-icon {
    color: rgba(228, 224, 218, 0.2);
    filter: none;
}
[data-theme="dark"] .up-gf-crate.is-ready .up-gf-crate-seal-col {
    --gf-accent: rgba(74, 168, 125, 0.18);
    --gf-ring-soft: rgba(74, 168, 125, 0.06);
    border-color: rgba(74, 168, 125, 0.2);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.04);
    background: linear-gradient(180deg, rgba(42, 39, 34, 0.6) 0%, rgba(74, 168, 125, 0.06) 100%);
}
[data-theme="dark"] .up-gf-crate.is-ready:hover {
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.2);
}
[data-theme="dark"] .up-gf-crate.is-ready .up-gf-crate-seal-col::before {
    background:
        radial-gradient(ellipse 85% 55% at 50% 100%, rgba(201, 168, 76, 0.2) 0%, transparent 70%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, transparent 42%);
}
[data-theme="dark"] .up-gf-crate.is-ready .up-gf-crate-seal-core {
    border-color: rgba(201, 168, 76, 0.25);
    background: linear-gradient(160deg, #2A2722 0%, rgba(42, 39, 34, 0.8) 100%);
}
[data-theme="dark"] .up-gf-crate.is-ready .up-gf-crate-seal-col::after {
    background: linear-gradient(180deg, transparent, rgba(201, 168, 76, 0.25), transparent);
    opacity: 0.35;
}
[data-theme="dark"] .up-gf-crate.is-ready .up-gf-crate-seal-ring::before {
    background: conic-gradient(from 0deg, rgba(201, 168, 76, 0.7), rgba(74, 168, 125, 0.4), rgba(232, 212, 138, 0.6), rgba(201, 168, 76, 0.15), rgba(201, 168, 76, 0.7));
}
[data-theme="dark"] .up-gf-crate.is-ready .up-gf-crate-seal-aurora {
    background: linear-gradient(90deg, transparent, rgba(232, 212, 138, 0.35), transparent);
}
[data-theme="dark"] .up-gf-crate.is-ready .up-gf-crate-seal-orbit i {
    background: rgba(232, 212, 138, 0.6);
    box-shadow: 0 0 8px rgba(201, 168, 76, 0.45);
}
[data-theme="dark"] .up-gf-crate.is-ready .up-gf-crate-seal-plinth {
    background: radial-gradient(ellipse, rgba(201, 168, 76, 0.22) 0%, transparent 72%);
}
[data-theme="dark"] .up-gf-crate-aura,
[data-theme="dark"] .up-gf-crate-shine,
[data-theme="dark"] .up-gf-crate-seal-aurora {
    display: none;
}
[data-theme="dark"] .up-gf-crate.is-ready .up-gf-crate-title {
    color: rgba(228, 224, 218, 0.88);
}
[data-theme="dark"] .up-gf-crate.is-ready .up-gf-crate-foot {
    background: linear-gradient(180deg, rgba(42, 39, 34, 0.55) 0%, rgba(74, 168, 125, 0.06) 100%);
}
[data-theme="dark"] .up-gf-crate.is-ready .up-gf-crate-tags li.is-user {
    border-color: rgba(201, 168, 76, 0.24);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04), 0 2px 6px rgba(0, 0, 0, 0.12);
}
[data-theme="dark"] .up-gf-crate-tags li.is-vip {
    background: rgba(74, 168, 125, 0.08);
    border-color: rgba(74, 168, 125, 0.14);
    box-shadow: none;
}
[data-theme="dark"] .up-gf-crate-tags li.is-user {
    color: #B8923A;
    background: linear-gradient(135deg, rgba(201, 168, 76, 0.12) 0%, rgba(42, 39, 34, 0.6) 100%);
    border-color: rgba(201, 168, 76, 0.18);
    box-shadow: none;
}
[data-theme="dark"] .up-gf-crate-tags li.is-server {
    color: rgba(106, 148, 196, 0.75);
    background: linear-gradient(135deg, rgba(106, 148, 196, 0.08) 0%, rgba(42, 39, 34, 0.5) 100%);
    border-color: rgba(106, 148, 196, 0.16);
    box-shadow: none;
}
[data-theme="dark"] .up-gf-crate-tags li.is-whitelist {
    color: rgba(139, 92, 246, 0.72);
    background: linear-gradient(135deg, rgba(139, 92, 246, 0.08) 0%, rgba(42, 39, 34, 0.5) 100%);
    border-color: rgba(139, 92, 246, 0.14);
    box-shadow: none;
}
[data-theme="dark"] .up-gf-crate.is-ready .up-gf-crate-tags li.is-server {
    border-color: rgba(106, 148, 196, 0.2);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04), 0 2px 6px rgba(0, 0, 0, 0.1);
}
[data-theme="dark"] .up-gf-crate.is-ready .up-gf-loot-orb-ring {
    border-color: rgba(74, 168, 125, 0.3);
}
/* ?? Activities crate desc dark ?? */
[data-theme="dark"] .is-activities .up-act-crate-desc {
    background: rgba(42, 39, 34, 0.55);
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .is-activities .up-act-crate-desc-mark {
    color: rgba(228, 224, 218, 0.45);
    background: rgba(42, 39, 34, 0.7);
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .is-activities .up-act-crate-desc-text {
    color: rgba(228, 224, 218, 0.65);
}
/* ?? Orb (???) dark ?? */
[data-theme="dark"] .up-gf-loot-orb-ring {
    border-color: rgba(228, 224, 218, 0.08);
}
[data-theme="dark"] .up-gf-loot-orb-core {
    background: linear-gradient(160deg, #2A2722 0%, #1C1A17 100%);
    border-color: rgba(228, 224, 218, 0.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
[data-theme="dark"] .up-gf-loot-orb-core strong {
    color: #B8923A;
}
[data-theme="dark"] .up-gf-loot-orb-core em {
    color: rgba(228, 224, 218, 0.35);
}
[data-theme="dark"] .up-gf-loot-orb:hover .up-gf-loot-orb-core {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 6px 16px rgba(0, 0, 0, 0.2);
}
[data-theme="dark"] .is-giftpacks .up-gf-loot-orb:hover .up-gf-loot-orb-core,
[data-theme="dark"] .is-activities .up-gf-loot-orb:hover .up-gf-loot-orb-core {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
[data-theme="dark"] .up-gf-crate.is-ready .up-gf-loot-orb-core {
    animation: none;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
[data-theme="dark"] .up-gf-loot-orb:focus-visible {
    outline-color: rgba(74, 168, 125, 0.25);
}
/* ?? ?????? dark ?? */
[data-theme="dark"] .is-activities .up-gf-crate-act .up-act-cancel-btn {
    color: rgba(228, 224, 218, 0.55);
    background: rgba(42, 39, 34, 0.6);
    border-color: rgba(228, 224, 218, 0.08);
    box-shadow: none;
}
[data-theme="dark"] .is-activities .up-gf-crate-act .up-act-cancel-btn:hover:not(:disabled) {
    color: rgba(228, 224, 218, 0.85);
    border-color: rgba(154, 123, 47, 0.35);
    background: rgba(42, 39, 34, 0.85);
}
[data-theme="dark"] .is-activities .up-gf-crate-act .up-act-cancel-btn:focus-visible {
    outline-color: rgba(154, 123, 47, 0.35);
}
/* ?? ???? (lottery ticket) dark ?? */
[data-theme="dark"] .up-lt-ticket {
    --lt-ring: rgba(74, 168, 125, 0.3);
    --lt-ring-soft: rgba(74, 168, 125, 0.06);
    --lt-glow: rgba(74, 168, 125, 0.15);
    --lt-face-a: rgba(74, 168, 125, 0.18);
    --lt-face-b: rgba(74, 168, 125, 0.06);
    --lt-pin: #B8923A;
    --lt-hub-from: #2A2722;
    --lt-hub-to: #1C1A17;
    border-color: rgba(228, 224, 218, 0.08);
    background: var(--ps-surface);
}
[data-theme="dark"] .up-lt-ticket.is-ready {
    border-color: rgba(74, 168, 125, 0.2);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
[data-theme="dark"] .up-lt-ticket.is-locked {
    opacity: 0.78;
}
[data-theme="dark"] .up-lt-ticket-compass-col {
    background: linear-gradient(180deg, rgba(42, 39, 34, 0.5) 0%, rgba(42, 39, 34, 0.25) 100%);
}
[data-theme="dark"] .up-lt-compass-aura {
    background: radial-gradient(circle, var(--lt-glow) 0%, transparent 68%);
}
[data-theme="dark"] .up-lt-compass-rim {
    background: linear-gradient(168deg, rgba(42, 39, 34, 0.85) 0%, rgba(28, 26, 22, 0.55) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 4px 16px rgba(0, 0, 0, 0.12);
}
[data-theme="dark"] .up-lt-compass-rim-chase {
    background: conic-gradient(from 0deg, var(--lt-pin), transparent 40deg, var(--lt-ring) 80deg, transparent 120deg, var(--lt-pin) 160deg, transparent 200deg, var(--lt-ring) 240deg, transparent 280deg, var(--lt-pin) 320deg);
}
[data-theme="dark"] .up-lt-compass-pin-blade {
    background: linear-gradient(180deg, rgba(240, 224, 160, 0.45) 0%, var(--lt-pin) 100%);
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.35));
}
[data-theme="dark"] .up-lt-compass-face {
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}
[data-theme="dark"] .up-lt-compass-gems {
    background: repeating-conic-gradient(
        from 0deg,
        rgba(42, 39, 34, 0.55) 0deg 2deg,
        transparent 2deg 45deg
    );
}
[data-theme="dark"] .up-lt-compass-beads i {
    background: radial-gradient(circle at 30% 25%, rgba(255, 246, 214, 0.35) 0%, var(--lt-pin) 100%);
    box-shadow: 0 0 6px var(--lt-glow);
}
[data-theme="dark"] .up-lt-compass-hub {
    background: linear-gradient(155deg, #2A2722 0%, #1C1A17 100%);
    border-color: rgba(228, 224, 218, 0.06);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 2px 10px rgba(0, 0, 0, 0.15);
    color: rgba(228, 224, 218, 0.78);
}
[data-theme="dark"] .up-lt-compass-pin-cap {
    background: radial-gradient(circle at 35% 28%, rgba(255, 246, 214, 0.6) 0%, var(--lt-pin) 58%, rgba(139, 105, 20, 0.4) 100%);
    box-shadow: 0 0 8px var(--lt-glow);
}
[data-theme="dark"] .up-lt-compass-disk {
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .up-lt-compass-sweep {
    background: conic-gradient(from 200deg, transparent 0deg, rgba(255, 255, 255, 0.08) 16deg, transparent 32deg);
    mix-blend-mode: normal;
}
[data-theme="dark"] .up-lt-ticket.is-ready .up-lt-compass-sweep,
[data-theme="dark"] .up-lt-ticket.is-drawing .up-lt-compass-sweep {
    background: conic-gradient(from 200deg, transparent 0deg, rgba(255, 255, 255, 0.06) 16deg, transparent 32deg);
    mix-blend-mode: normal;
}
[data-theme="dark"] .up-lt-compass-shock {
    border-color: var(--lt-ring);
}
[data-theme="dark"] .up-lt-ticket-preview-core {
    background: linear-gradient(155deg, #2A2722 0%, #1C1A17 100%);
    border-color: rgba(228, 224, 218, 0.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 4px 12px rgba(0, 0, 0, 0.12);
}
[data-theme="dark"] .up-lt-ticket-preview-core strong {
    color: rgba(228, 224, 218, 0.88);
}
[data-theme="dark"] .up-lt-ticket-preview-core em {
    color: rgba(228, 224, 218, 0.35);
}
[data-theme="dark"] .up-lt-ticket-preview:hover .up-lt-ticket-preview-core {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 6px 16px rgba(0, 0, 0, 0.18);
}
[data-theme="dark"] .up-lt-ticket-preview-disk {
    border-color: var(--lt-ring);
    background: repeating-conic-gradient(
        rgba(42, 39, 34, 0.6) 0deg 22.5deg,
        var(--lt-face-b) 22.5deg 45deg
    );
}
[data-theme="dark"] .up-lt-ticket-preview-sweep {
    background: conic-gradient(from 200deg, transparent 0deg, rgba(255, 255, 255, 0.06) 14deg, transparent 28deg);
}
[data-theme="dark"] .up-lt-ticket-preview-pin::before {
    background: var(--lt-ring);
    box-shadow: 0 0 6px var(--lt-glow);
}
[data-theme="dark"] .up-lt-ticket-preview-pin::after {
    background: var(--lt-ring);
}
[data-theme="dark"] .up-lt-ticket-state {
    background: rgba(42, 39, 34, 0.72);
    border-color: rgba(228, 224, 218, 0.08);
    color: rgba(228, 224, 218, 0.5);
}
[data-theme="dark"] .up-lt-ticket-state.is-ready {
    color: rgba(74, 168, 125, 0.85);
    background: rgba(74, 168, 125, 0.1);
    border-color: rgba(74, 168, 125, 0.14);
    box-shadow: 0 0 14px rgba(74, 168, 125, 0.08);
}
[data-theme="dark"] .up-lt-ticket-state.is-ready::before {
    background: rgba(74, 168, 125, 0.85);
    box-shadow: 0 0 8px rgba(74, 168, 125, 0.35);
}
[data-theme="dark"] .up-lt-ticket-state.is-locked {
    color: rgba(228, 224, 218, 0.35);
}
[data-theme="dark"] .up-lt-ticket-foot {
    background: linear-gradient(180deg, rgba(42, 39, 34, 0.5) 0%, rgba(42, 39, 34, 0.25) 100%);
    border-left-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .up-lt-ticket-tags li {
    background: rgba(42, 39, 34, 0.72);
    border-color: rgba(228, 224, 218, 0.08);
}
[data-theme="dark"] .up-lt-ticket-tags li.is-cost {
    background: rgba(201, 168, 76, 0.12);
    border-color: rgba(201, 168, 76, 0.14);
}
[data-theme="dark"] .up-lt-ticket-tags li.is-online {
    background: rgba(74, 168, 125, 0.08);
    border-color: rgba(74, 168, 125, 0.1);
}
[data-theme="dark"] .up-lt-ticket-tags li.is-history strong {
    color: rgba(228, 224, 218, 0.78);
}
[data-theme="dark"] .up-lt-ticket-draw {
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
[data-theme="dark"] .up-lt-ticket.is-ready .up-lt-ticket-draw:not(:disabled)::after {
    background: linear-gradient(105deg, transparent 38%, rgba(255, 255, 255, 0.06) 50%, transparent 62%);
}
[data-theme="dark"] .up-lt-ticket-pull-tag {
    color: rgba(228, 224, 218, 0.3);
}
[data-theme="dark"] .up-lt-ticket-draw-gem {
    background: rgba(228, 224, 218, 0.15);
}
[data-theme="dark"] .up-lt-ticket.is-tier-bronze {
    --lt-ring: rgba(184, 115, 51, 0.35);
    --lt-ring-soft: rgba(184, 115, 51, 0.08);
    --lt-glow: rgba(184, 115, 51, 0.18);
    --lt-face-a: rgba(184, 115, 51, 0.2);
    --lt-face-b: rgba(184, 115, 51, 0.07);
}
[data-theme="dark"] .up-lt-ticket.is-tier-silver {
    --lt-ring: rgba(107, 140, 174, 0.35);
    --lt-ring-soft: rgba(107, 140, 174, 0.08);
    --lt-glow: rgba(107, 140, 174, 0.16);
    --lt-face-a: rgba(107, 140, 174, 0.2);
    --lt-face-b: rgba(107, 140, 174, 0.07);
}
[data-theme="dark"] .up-lt-ticket.is-tier-gold {
    --lt-ring: rgba(201, 168, 76, 0.4);
    --lt-ring-soft: rgba(201, 168, 76, 0.1);
    --lt-glow: rgba(201, 168, 76, 0.2);
    --lt-face-a: rgba(201, 168, 76, 0.22);
    --lt-face-b: rgba(201, 168, 76, 0.08);
}
[data-theme="dark"] .up-lt-ticket.is-tier-bronze.is-ready { border-color: rgba(184, 115, 51, 0.2); }
[data-theme="dark"] .up-lt-ticket.is-tier-silver.is-ready { border-color: rgba(107, 140, 174, 0.2); }
[data-theme="dark"] .up-lt-ticket.is-tier-gold.is-ready { border-color: rgba(201, 168, 76, 0.24); }
/* ?? Lottery result modal dark ?? */
[data-theme="dark"] .up-lt-result-panel {
    background: linear-gradient(180deg, rgba(42, 39, 34, 0.95) 0%, var(--ps-surface) 100%);
}
[data-theme="dark"] .up-lt-result-hero {
    background:
        radial-gradient(ellipse 80% 70% at 50% 0%, rgba(201, 168, 76, 0.08) 0%, transparent 68%),
        linear-gradient(180deg, rgba(42, 39, 34, 0.9) 0%, transparent 100%);
}
[data-theme="dark"] .up-lt-result-spark {
    background: rgba(201, 168, 76, 0.5);
    box-shadow: 0 0 10px rgba(201, 168, 76, 0.25);
}
[data-theme="dark"] .up-lt-result-pin::before {
    background: radial-gradient(circle at 35% 28%, rgba(255, 246, 214, 0.5) 0%, #C9A84C 100%);
    box-shadow: 0 0 8px rgba(201, 168, 76, 0.25);
}
[data-theme="dark"] .up-lt-result-pin::after {
    background: #C9A84C;
}
[data-theme="dark"] .up-lt-result-disk {
    border-color: rgba(201, 168, 76, 0.2);
    background: repeating-conic-gradient(
        from -22.5deg,
        rgba(201, 168, 76, 0.12) 0deg 22.5deg,
        rgba(74, 168, 125, 0.05) 22.5deg 45deg
    );
}
[data-theme="dark"] .up-lt-result-ring {
    border-color: rgba(201, 168, 76, 0.2);
}
[data-theme="dark"] .up-lt-result-ring.is-inner {
    border-color: rgba(74, 168, 125, 0.12);
}
[data-theme="dark"] .up-lt-result-core {
    background: linear-gradient(168deg, rgba(42, 39, 34, 0.9) 0%, var(--ps-surface-2) 100%);
    border-color: rgba(228, 224, 218, 0.08);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}
[data-theme="dark"] .up-an-vault { background: var(--ps-surface); }
[data-theme="dark"] .up-lt-vault { background: var(--ps-surface); }
[data-theme="dark"] .up-daily-vault { background: var(--ps-surface); }
/* ?? Announcement brief dark ?? */
[data-theme="dark"] .up-an-brief {
    --an-accent: rgba(228, 224, 218, 0.04);
    --an-ring-soft: rgba(74, 168, 125, 0.04);
    --an-glow: rgba(74, 168, 125, 0.1);
    --an-icon: rgba(228, 224, 218, 0.55);
    --an-stroke: rgba(228, 224, 218, 0.08);
    --an-rim-a: rgba(74, 168, 125, 0.45);
    --an-rim-b: rgba(201, 168, 76, 0.35);
    --an-rim-c: rgba(106, 148, 196, 0.25);
}
[data-theme="dark"] .up-an-brief.is-cat-system {
    --an-accent: rgba(106, 148, 196, 0.08);
    --an-ring-soft: rgba(106, 148, 196, 0.05);
    --an-glow: rgba(106, 148, 196, 0.15);
    --an-icon: #6A94C4;
    --an-stroke: rgba(106, 148, 196, 0.14);
    --an-rim-a: rgba(106, 148, 196, 0.6);
    --an-rim-b: rgba(122, 158, 196, 0.45);
    --an-rim-c: rgba(74, 168, 125, 0.25);
}
[data-theme="dark"] .up-an-brief.is-cat-event {
    --an-accent: rgba(201, 168, 76, 0.08);
    --an-ring-soft: rgba(201, 168, 76, 0.05);
    --an-glow: rgba(201, 168, 76, 0.16);
    --an-icon: #C9A84C;
    --an-stroke: rgba(201, 168, 76, 0.16);
    --an-rim-a: rgba(201, 168, 76, 0.65);
    --an-rim-b: rgba(201, 168, 76, 0.4);
    --an-rim-c: rgba(232, 212, 138, 0.3);
}
[data-theme="dark"] .up-an-brief.is-cat-maint {
    --an-accent: rgba(184, 77, 77, 0.06);
    --an-ring-soft: rgba(184, 77, 77, 0.04);
    --an-glow: rgba(184, 77, 77, 0.14);
    --an-icon: #B84D4D;
    --an-stroke: rgba(184, 77, 77, 0.14);
    --an-rim-a: rgba(184, 77, 77, 0.55);
    --an-rim-b: rgba(220, 140, 140, 0.35);
    --an-rim-c: rgba(184, 77, 77, 0.2);
}
[data-theme="dark"] .up-an-brief.is-cat-patch {
    --an-accent: rgba(74, 168, 125, 0.08);
    --an-ring-soft: rgba(74, 168, 125, 0.05);
    --an-glow: rgba(74, 168, 125, 0.14);
    --an-icon: #4AA87D;
    --an-stroke: rgba(74, 168, 125, 0.14);
    --an-rim-a: rgba(74, 168, 125, 0.6);
    --an-rim-b: rgba(120, 180, 150, 0.4);
    --an-rim-c: rgba(201, 168, 76, 0.2);
}
[data-theme="dark"] .up-an-brief-mark {
    border-right-color: rgba(228, 224, 218, 0.06);
    background: linear-gradient(180deg, rgba(42, 39, 34, 0.85) 0%, rgba(74, 168, 125, 0.04) 100%);
}
[data-theme="dark"] .up-an-brief-sigil-core {
    background: linear-gradient(160deg, rgba(42, 39, 34, 0.85) 0%, rgba(28, 26, 22, 0.7) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 6px 16px rgba(0, 0, 0, 0.12);
}
[data-theme="dark"] .up-an-brief.is-pinned { border-color: rgba(201, 168, 76, 0.18); box-shadow: 0 10px 28px rgba(0, 0, 0, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.04); }
[data-theme="dark"] .up-an-brief.is-pinned .up-an-brief-title { color: #C9A84C; }
[data-theme="dark"] .up-an-brief-sheet {
    background: rgba(42, 39, 34, 0.55);
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .up-an-brief-sheet-mark {
    color: rgba(228, 224, 218, 0.45);
    background: rgba(42, 39, 34, 0.7);
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .up-an-brief-content blockquote {
    border-left-color: rgba(106, 148, 196, 0.22);
    background: rgba(42, 39, 34, 0.55);
}
/* ?? Account vault dark ?? */
[data-theme="dark"] .up-ac-vault {
    background:
        radial-gradient(ellipse 72% 92% at 0% 0%, rgba(106, 148, 196, 0.06) 0%, transparent 58%),
        radial-gradient(ellipse 58% 72% at 100% 100%, rgba(74, 168, 125, 0.06) 0%, transparent 55%),
        linear-gradient(158deg, rgba(42, 39, 34, 0.85) 0%, var(--ps-surface) 50%, var(--ps-surface-2) 100%);
    border-color: rgba(228, 224, 218, 0.08);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
[data-theme="dark"] .up-ac-vault-bg::after {
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.04), transparent);
}
[data-theme="dark"] .up-ac-vault-sigil-aura {
    background: radial-gradient(circle, rgba(106, 148, 196, 0.15) 0%, rgba(74, 168, 125, 0.08) 48%, transparent 72%);
}
[data-theme="dark"] .up-ac-vault-sigil-ring {
    background: linear-gradient(165deg, rgba(42, 39, 34, 0.45) 0%, rgba(28, 26, 22, 0.25) 100%);
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, 0.04),
        0 10px 28px rgba(0, 0, 0, 0.15);
}
[data-theme="dark"] .up-ac-vault-sigil-orbit {
    background: conic-gradient(from 0deg, rgba(106, 148, 196, 0.5), rgba(74, 168, 125, 0.35), rgba(201, 168, 76, 0.3), rgba(106, 148, 196, 0.18), rgba(106, 148, 196, 0.5));
}
[data-theme="dark"] .up-ac-vault-sigil-face {
    background: linear-gradient(160deg, rgba(42, 39, 34, 0.85) 0%, rgba(28, 26, 22, 0.7) 100%);
    border-color: rgba(106, 148, 196, 0.14);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        0 10px 28px rgba(0, 0, 0, 0.12);
}
[data-theme="dark"] .up-ac-vault-metrics .up-ac-stat { background: var(--ps-surface-2); }
[data-theme="dark"] .up-ac-vault-dust { opacity: 0.12; }
[data-theme="dark"] .up-ac-code {
    background: rgba(42, 39, 34, 0.7);
    border-color: rgba(228, 224, 218, 0.08);
    color: rgba(228, 224, 218, 0.85);
}
/* ?? Account ledger dark ?? */
[data-theme="dark"] .up-ac-ledger-row {
    background: linear-gradient(180deg, rgba(42, 39, 34, 0.6) 0%, var(--ps-surface-2) 100%);
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .up-ac-ledger-source {
    background: rgba(42, 39, 34, 0.7);
    border-color: rgba(228, 224, 218, 0.06);
    color: rgba(228, 224, 218, 0.55);
}
[data-theme="dark"] .up-ac-ledger-amt {
    background: rgba(42, 39, 34, 0.6);
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .up-ac-ledger-empty {
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .up-ac-security-act {
    background: rgba(42, 39, 34, 0.55);
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .up-ac-security-btn {
    background: rgba(42, 39, 34, 0.7);
    border-color: rgba(74, 168, 125, 0.2);
    color: var(--ps-accent);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
[data-theme="dark"] .up-ac-security-btn:hover {
    background: rgba(74, 168, 125, 0.12);
    border-color: rgba(74, 168, 125, 0.3);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
/* ?? Password change vault dark ?? */
[data-theme="dark"] .up-pw-vault {
    background:
        radial-gradient(ellipse 72% 92% at 0% 0%, rgba(106, 148, 196, 0.06) 0%, transparent 58%),
        radial-gradient(ellipse 58% 72% at 100% 100%, rgba(74, 168, 125, 0.06) 0%, transparent 55%),
        linear-gradient(158deg, rgba(42, 39, 34, 0.85) 0%, var(--ps-surface) 50%, var(--ps-surface-2) 100%);
    border-color: rgba(228, 224, 218, 0.08);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
[data-theme="dark"] .up-pw-vault-bg::after {
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.04), transparent);
}
[data-theme="dark"] .up-pw-vault-sigil-aura {
    background: radial-gradient(circle, rgba(106, 148, 196, 0.14) 0%, rgba(74, 168, 125, 0.08) 48%, transparent 72%);
}
[data-theme="dark"] .up-pw-vault-sigil-ring {
    border-color: rgba(106, 148, 196, 0.16);
}
[data-theme="dark"] .up-pw-vault-sigil-face {
    background: linear-gradient(160deg, rgba(42, 39, 34, 0.85) 0%, rgba(28, 26, 22, 0.7) 100%);
    border-color: rgba(106, 148, 196, 0.14);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        0 10px 28px rgba(0, 0, 0, 0.12);
}
[data-theme="dark"] .up-pw-sheet {
    background: var(--ps-surface-2);
    border-color: rgba(228, 224, 218, 0.08);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
[data-theme="dark"] .up-pw-aside {
    background: rgba(42, 39, 34, 0.55);
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .up-pw-submit {
    background: linear-gradient(180deg, var(--ps-accent) 0%, var(--ps-accent-hover) 100%);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
}
[data-theme="dark"] .up-pw-row-field input {
    background: rgba(42, 39, 34, 0.7);
    border-color: rgba(228, 224, 218, 0.1);
    color: var(--ps-ink);
}
[data-theme="dark"] .up-pw-row-field input:hover {
    border-color: rgba(74, 168, 125, 0.2);
}
[data-theme="dark"] .up-pw-row-field input:focus {
    border-color: var(--ps-accent);
    box-shadow: 0 0 0 3px rgba(74, 168, 125, 0.12);
}
/* ?? Auth / login · register dark ?? */
[data-theme="dark"] .ps-auth-body {
    background:
        radial-gradient(ellipse 72% 52% at 100% 0%, rgba(74, 168, 125, 0.04) 0%, transparent 58%),
        radial-gradient(ellipse 58% 42% at 0% 100%, rgba(201, 168, 76, 0.03) 0%, transparent 52%),
        var(--ps-bg);
}
[data-theme="dark"] .ps-auth-visual {
    background:
        radial-gradient(ellipse 62% 48% at 0% 108%, rgba(74, 168, 125, 0.05) 0%, transparent 52%),
        radial-gradient(ellipse 55% 70% at 100% 100%, rgba(201, 168, 76, 0.06) 0%, transparent 55%),
        linear-gradient(158deg, rgba(42, 39, 34, 0.85) 0%, var(--ps-surface) 52%, var(--ps-surface-2) 100%);
    border-right-color: rgba(228, 224, 218, 0.08);
}
[data-theme="dark"] .ps-auth-visual-sweep {
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.04), transparent);
}
[data-theme="dark"] .ps-auth-visual-mark {
    filter: drop-shadow(0 18px 36px rgba(0, 0, 0, 0.25));
}
[data-theme="dark"] .ps-auth-visual-inner h1 em {
    background: linear-gradient(128deg, #C9A84C 8%, #D4B56A 42%, #E8D48A 58%, #4AA87D 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
[data-theme="dark"] .ps-auth-card {
    background:
        linear-gradient(180deg, rgba(42, 39, 34, 0.95) 0%, rgba(32, 30, 26, 0.88) 100%);
    border-color: rgba(228, 224, 218, 0.08);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.04) inset,
        0 18px 48px rgba(0, 0, 0, 0.25);
}
[data-theme="dark"] .ps-auth-field-control {
    background: rgba(42, 39, 34, 0.7);
    border-color: rgba(228, 224, 218, 0.1);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
[data-theme="dark"] .ps-auth-field-control:focus-within {
    border-color: rgba(74, 168, 125, 0.35);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        0 0 0 3px rgba(74, 168, 125, 0.1);
}
[data-theme="dark"] .ps-auth-optional {
    border-color: rgba(228, 224, 218, 0.08);
    background: rgba(42, 39, 34, 0.35);
}
[data-theme="dark"] .ps-auth-submit {
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.25);
}
[data-theme="dark"] .ps-auth-submit:hover {
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.3);
}
[data-theme="dark"] .ps-auth-mobile-brand {
    background: rgba(42, 39, 34, 0.82);
    border-color: rgba(228, 224, 218, 0.08);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
[data-theme="dark"] .ps-auth-features li {
    background: rgba(42, 39, 34, 0.5);
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .ps-auth-body .ps-auth-tag {
    background: rgba(42, 39, 34, 0.7);
    border-color: rgba(74, 168, 125, 0.16);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
    color: var(--ps-accent);
}
[data-theme="dark"] .ps-auth-body .ps-auth-tag .ps-brand-mark-wrap {
    filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.3));
}
/* ?? Auth theme toggle ?? */
.ps-auth-theme-toggle {
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 10;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: var(--ps-surface);
    border: 1px solid var(--ps-border);
    color: var(--ps-ink-muted);
    cursor: pointer;
    transition: background 0.18s, color 0.18s, border-color 0.18s;
    box-shadow: var(--ps-shadow-sm);
}
.ps-auth-theme-toggle:hover {
    background: var(--ps-surface-2);
    color: var(--ps-ink);
    border-color: var(--ps-border-strong);
}
.ps-auth-theme-icon {
    width: 18px;
    height: 18px;
    display: none;
}
[data-theme="light"] .ps-auth-theme-icon--sun,
.ps-auth-theme-icon--sun { display: block; }
[data-theme="dark"] .ps-auth-theme-icon--moon { display: block; }
[data-theme="dark"] .ps-auth-theme-icon--sun { display: none; }
.ps-auth-panel { position: relative; }
[data-theme="dark"] .up-act-vault {
    background: linear-gradient(158deg, rgba(42, 39, 34, 0.85) 0%, var(--ps-surface) 50%, var(--ps-surface-2) 100%);
    border-color: rgba(228, 224, 218, 0.08);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
[data-theme="dark"] .up-act-vault-bg::after {
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.04), transparent);
}
[data-theme="dark"] .up-act-vault-hub-aura {
    background: radial-gradient(circle, rgba(201, 168, 76, 0.15) 0%, rgba(74, 168, 125, 0.08) 48%, transparent 72%);
}
[data-theme="dark"] .up-act-vault-hub-ring {
    background: linear-gradient(165deg, rgba(42, 39, 34, 0.45) 0%, rgba(28, 26, 22, 0.25) 100%);
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, 0.04),
        0 12px 32px rgba(0, 0, 0, 0.15),
        0 0 0 1px rgba(201, 168, 76, 0.06);
}
[data-theme="dark"] .up-act-vault-hub-orbit {
    background: conic-gradient(from 0deg, rgba(201, 168, 76, 0.55), rgba(74, 168, 125, 0.3), rgba(232, 212, 138, 0.45), rgba(201, 168, 76, 0.15), rgba(201, 168, 76, 0.55));
}
[data-theme="dark"] .up-act-vault-hub-face {
    background: linear-gradient(155deg, rgba(42, 39, 34, 0.8) 0%, rgba(28, 26, 22, 0.6) 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        0 14px 36px rgba(0, 0, 0, 0.15);
}
[data-theme="dark"] .up-act-vault-spark--d { background: rgba(74, 168, 125, 0.4); box-shadow: 0 0 12px rgba(74, 168, 125, 0.2); }
[data-theme="dark"] .up-act-vault-dust { opacity: 0.12; }
[data-theme="dark"] .up-daily-panel--signin.is-ready {
    border-color: rgba(74, 168, 125, 0.22);
    box-shadow: 0 10px 32px rgba(74, 168, 125, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
[data-theme="dark"] .up-daily-panel--signin.is-done {
    border-color: rgba(74, 168, 125, 0.14);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}
[data-theme="dark"] .up-daily-panel--punch.is-ready {
    border-color: rgba(201, 168, 76, 0.22);
}
[data-theme="dark"] .up-daily-panel--punch.is-cooldown {
    border-color: rgba(201, 168, 76, 0.12);
}
[data-theme="dark"] .up-daily-panel::after {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
/* ?? Daily: sign-in chain dark ?? */
[data-theme="dark"] .up-signin-chain-bead {
    background: radial-gradient(circle at 32% 28%, rgba(255, 255, 255, 0.28) 0%, rgba(42, 39, 34, 0.72) 55%, rgba(28, 26, 22, 0.88) 100%);
    border-color: rgba(228, 224, 218, 0.14);
    box-shadow: 0 0 0 3px var(--ps-surface), 0 4px 14px rgba(0, 0, 0, 0.18);
}
[data-theme="dark"] .up-signin-chain-bead-shine {
    background: linear-gradient(120deg, transparent 42%, rgba(255, 255, 255, 0.22) 50%, transparent 58%);
}
[data-theme="dark"] .up-signin-chain-bead-num {
    color: rgba(228, 224, 218, 0.65);
}
[data-theme="dark"] .up-signin-chain-wd {
    color: rgba(228, 224, 218, 0.4);
}
[data-theme="dark"] .up-signin-chain-wire-base {
    background: rgba(228, 224, 218, 0.08);
}
[data-theme="dark"] .up-signin-chain-dust {
    opacity: 0.35;
}
[data-theme="dark"] .up-signin-chain-day.is-done .up-signin-chain-bead {
    background: radial-gradient(circle at 30% 25%, #4DA87D 0%, #2A5A4A 52%, #1C3A30 100%);
    border-color: rgba(255, 255, 255, 0.22);
    box-shadow: 0 0 0 3px var(--ps-surface), 0 0 18px rgba(74, 168, 125, 0.3), 0 0 36px rgba(74, 168, 125, 0.12);
}
[data-theme="dark"] .up-signin-chain-day.is-done .up-signin-chain-bead-num {
    color: rgba(255, 255, 255, 0.9);
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
}
[data-theme="dark"] .up-signin-chain-day.is-done .up-signin-chain-wd {
    color: rgba(74, 168, 125, 0.78);
}
[data-theme="dark"] .up-signin-chain-day.is-today .up-signin-chain-bead {
    border-color: rgba(74, 168, 125, 0.55);
    box-shadow:
        0 0 0 3px var(--ps-surface),
        0 0 0 6px rgba(74, 168, 125, 0.14),
        0 0 24px rgba(74, 168, 125, 0.32),
        0 0 40px rgba(201, 168, 76, 0.1);
}
[data-theme="dark"] .up-signin-chain-day.is-today .up-signin-chain-bead-num {
    color: rgba(228, 224, 218, 0.92);
}
[data-theme="dark"] .up-signin-chain-day.is-today .up-signin-chain-wd {
    color: rgba(74, 168, 125, 0.85);
}
[data-theme="dark"] .up-signin-chain-day.is-today .up-signin-chain-ripple {
    border-color: rgba(74, 168, 125, 0.35);
}
[data-theme="dark"] .up-signin-chain-day.is-today .up-signin-chain-ripple--b {
    border-color: rgba(201, 168, 76, 0.28);
}
[data-theme="dark"] .up-signin-chain-day.is-future .up-signin-chain-bead {
    background: rgba(42, 39, 34, 0.3);
    box-shadow: 0 0 0 3px var(--ps-surface);
}
[data-theme="dark"] .up-signin-chain-day.is-future .up-signin-chain-bead-shine {
    opacity: 0.06;
}
/* ?? Daily: punch pulse dark ?? */
[data-theme="dark"] .up-daily-pulse-track {
    stroke: rgba(228, 224, 218, 0.08);
}
[data-theme="dark"] .up-daily-pulse-core {
    background:
        radial-gradient(circle at 28% 22%, rgba(255, 255, 255, 0.12) 0%, transparent 44%),
        radial-gradient(circle at 72% 78%, rgba(201, 168, 76, 0.06) 0%, transparent 48%),
        linear-gradient(168deg, #2A2722 0%, #1C1A17 100%);
    border-color: rgba(228, 224, 218, 0.08);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        inset 0 -10px 22px rgba(0, 0, 0, 0.12),
        0 8px 24px rgba(0, 0, 0, 0.18);
}
[data-theme="dark"] .up-daily-pulse-core::before {
    background: conic-gradient(from 200deg, transparent 0deg, rgba(255, 255, 255, 0.12) 24deg, transparent 48deg);
}
[data-theme="dark"] .up-daily-pulse-core::after {
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}
[data-theme="dark"] .up-daily-pulse.is-ready .up-daily-pulse-core {
    box-shadow:
        inset 0 0 0 1px rgba(74, 168, 125, 0.12),
        0 0 0 4px rgba(74, 168, 125, 0.06),
        0 0 32px rgba(74, 168, 125, 0.15),
        0 10px 28px rgba(0, 0, 0, 0.15);
}
[data-theme="dark"] .up-daily-pulse.is-cooldown .up-daily-pulse-core {
    box-shadow:
        inset 0 0 0 1px rgba(201, 168, 76, 0.1),
        0 0 0 3px rgba(201, 168, 76, 0.05),
        0 0 20px rgba(201, 168, 76, 0.1),
        0 8px 22px rgba(0, 0, 0, 0.12);
}
[data-theme="dark"] .up-daily-pulse-beacon {
    background: linear-gradient(145deg, #6A5430 0%, #4A3A20 55%, #2A2010 100%);
    box-shadow:
        0 0 0 2px rgba(42, 39, 34, 0.7),
        0 0 12px rgba(201, 168, 76, 0.35),
        0 0 24px rgba(201, 168, 76, 0.15);
}
[data-theme="dark"] .up-daily-pulse.is-ready .up-daily-pulse-beacon {
    background: linear-gradient(145deg, #4DA87D 0%, #2A5A4A 55%, #C4A24E 100%);
    box-shadow:
        0 0 0 2px rgba(42, 39, 34, 0.85),
        0 0 14px rgba(74, 168, 125, 0.45),
        0 0 28px rgba(74, 168, 125, 0.18);
}
[data-theme="dark"] .up-daily-pulse-time {
    filter: drop-shadow(0 1px 0 rgba(0, 0, 0, 0.4));
}
[data-theme="dark"] .up-daily-pulse-motes span {
    box-shadow: 0 0 10px rgba(74, 168, 125, 0.4);
}
[data-theme="dark"] .up-daily-pulse-mark {
    background: linear-gradient(145deg, rgba(74, 168, 125, 0.12) 0%, rgba(74, 168, 125, 0.04) 100%);
    box-shadow:
        0 0 0 3px rgba(74, 168, 125, 0.06),
        0 0 16px rgba(74, 168, 125, 0.1);
}
[data-theme="dark"] .up-daily-pulse-mark svg {
    filter: drop-shadow(0 0 5px rgba(74, 168, 125, 0.25));
}
[data-theme="dark"] .up-daily-pulse-halo {
    opacity: 0;
}
[data-theme="dark"] .up-daily-pulse.is-ready .up-daily-pulse-halo {
    background: radial-gradient(circle, rgba(74, 168, 125, 0.16) 0%, rgba(74, 168, 125, 0.04) 42%, transparent 72%);
}
[data-theme="dark"] .up-daily-pulse.is-cooldown .up-daily-pulse-halo {
    background: radial-gradient(circle, rgba(201, 168, 76, 0.18) 0%, rgba(201, 168, 76, 0.06) 38%, transparent 70%);
}
[data-theme="dark"] .up-daily-pulse-tickring {
    background: repeating-conic-gradient(
        from -90deg,
        rgba(228, 224, 218, 0.08) 0deg 1.5deg,
        transparent 1.5deg 15deg
    );
    opacity: 0.4;
}
[data-theme="dark"] .up-daily-pulse.is-ready .up-daily-pulse-tickring {
    background: repeating-conic-gradient(
        from -90deg,
        rgba(74, 168, 125, 0.2) 0deg 1.5deg,
        transparent 1.5deg 15deg
    );
    opacity: 0.55;
}
[data-theme="dark"] .up-daily-pulse-orbit--outer {
    border-color: rgba(228, 224, 218, 0.08);
}
[data-theme="dark"] .up-daily-pulse-orbit--inner {
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .up-daily-pulse.is-ready .up-daily-pulse-orbit--outer {
    border-color: rgba(74, 168, 125, 0.18);
}
[data-theme="dark"] .up-daily-pulse.is-ready .up-daily-pulse-orbit--inner {
    border-color: rgba(201, 168, 76, 0.16);
}
[data-theme="dark"] .up-daily-pulse.is-cooldown .up-daily-pulse-orbit--outer {
    border-color: rgba(201, 168, 76, 0.14);
}
[data-theme="dark"] .up-signin-chain-wire-glow {
    box-shadow:
        0 0 14px rgba(74, 168, 125, 0.4),
        0 0 28px rgba(74, 168, 125, 0.16);
}
[data-theme="dark"] .up-signin-chain-mote {
    background: rgba(255, 246, 214, 0.7);
    box-shadow:
        0 0 10px rgba(255, 246, 214, 0.6),
        0 0 22px rgba(74, 168, 125, 0.45),
        0 0 36px rgba(201, 168, 76, 0.22);
}
[data-theme="dark"] .up-daily-panel--signin.is-ready .up-signin-chain-wire-glow {
    box-shadow:
        0 0 18px rgba(74, 168, 125, 0.5),
        0 0 36px rgba(74, 168, 125, 0.22);
}
/* ?? Daily: loot card dark ?? */
[data-theme="dark"] .up-daily-loot.is-collapsed {
    background: linear-gradient(135deg, rgba(201, 168, 76, 0.04) 0%, var(--ps-surface-2) 58%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}
[data-theme="dark"] .up-daily-loot-tag {
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06);
}
[data-theme="dark"] .up-daily-loot-tag.is-gold {
    color: #B8923A;
    background: linear-gradient(135deg, rgba(201, 168, 76, 0.12) 0%, rgba(201, 168, 76, 0.05) 100%);
    border-color: rgba(201, 168, 76, 0.2);
}
[data-theme="dark"] .up-daily-loot-tag.is-diamond {
    background: linear-gradient(135deg, rgba(106, 148, 196, 0.1) 0%, rgba(106, 148, 196, 0.04) 100%);
    border-color: rgba(106, 148, 196, 0.16);
}
[data-theme="dark"] .up-daily-loot-tag.is-item {
    background: linear-gradient(135deg, rgba(74, 168, 125, 0.1) 0%, rgba(74, 168, 125, 0.04) 100%);
    border-color: rgba(74, 168, 125, 0.14);
}
[data-theme="dark"] .up-daily-loot-tag.is-kicker {
    background: linear-gradient(135deg, rgba(201, 168, 76, 0.14) 0%, rgba(201, 168, 76, 0.06) 100%);
    border-color: rgba(201, 168, 76, 0.18);
}
[data-theme="dark"] .up-daily-loot-tag.is-kicker.is-claimed {
    background: linear-gradient(135deg, rgba(74, 168, 125, 0.1) 0%, rgba(74, 168, 125, 0.04) 100%);
    border-color: rgba(74, 168, 125, 0.14);
}
[data-theme="dark"] .up-daily-loot-tag.is-cycle {
    border-color: rgba(228, 224, 218, 0.08);
}
[data-theme="dark"] .up-daily-loot-tag.is-offline {
    background: rgba(74, 168, 125, 0.06);
    border-color: rgba(74, 168, 125, 0.1);
}
[data-theme="dark"] .up-daily-loot-tag.is-more {
    background: rgba(228, 224, 218, 0.03);
    border-color: rgba(228, 224, 218, 0.08);
}
[data-theme="dark"] .up-daily-loot-tag.is-muted {
    border-color: rgba(228, 224, 218, 0.06);
}
[data-theme="dark"] .up-daily-loot--signin {
    background: var(--ps-surface);
}
[data-theme="dark"] .up-daily-panel--signin.is-ready .up-daily-loot--signin {
    background: linear-gradient(180deg, rgba(74, 168, 125, 0.03) 0%, var(--ps-surface) 100%);
    border-color: rgba(74, 168, 125, 0.1);
}
[data-theme="dark"] .up-daily-foot-kicker {
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04);
}
[data-theme="dark"] .up-daily-panel--signin.is-ready .up-daily-foot-kicker:not(.is-claimed) {
    color: rgba(74, 168, 125, 0.8);
    background: rgba(74, 168, 125, 0.08);
    border-color: rgba(74, 168, 125, 0.14);
}
[data-theme="dark"] .up-daily-metric {
    background: rgba(42, 39, 34, 0.72);
}
[data-theme="dark"] .up-daily-masthead {
    background: var(--ps-surface);
    border-color: rgba(228, 224, 218, 0.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 8px 24px rgba(0, 0, 0, 0.12);
}
[data-theme="dark"] .ps-shop-success-btn,
[data-theme="dark"] .ps-shop-error-btn,
[data-theme="dark"] .ps-pass-feedback-btn {
    background: linear-gradient(180deg, #3A3530 0%, #1C1A17 100%);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.3);
}
[data-theme="dark"] .ps-shop-success-btn:hover,
[data-theme="dark"] .ps-shop-error-btn:hover,
[data-theme="dark"] .ps-pass-feedback-btn:hover {
    background: linear-gradient(180deg, #2E2B26 0%, #151310 100%);
}
[data-theme="dark"] .ps-shop-tab { border-color: rgba(228, 224, 218, 0.08); }
[data-theme="dark"] .ps-shop-tab.is-active { border-color: transparent; }

.ps-signin-reward-detail-item.is-item .ps-signin-reward-detail-qty {
    color: var(--ps-ink-muted);
    background: rgba(255, 255, 255, 0.9);
    border-color: rgba(30, 27, 22, 0.06);
}
[data-theme="dark"] .up-rc-offer-foot {
    background: linear-gradient(180deg, rgba(42, 39, 34, 0.94) 0%, var(--ps-surface-2) 100%);
    border-left-color: rgba(255, 255, 255, 0.06);
}
[data-theme="dark"] .up-rc-offer.is-featured .up-rc-offer-foot {
    background: linear-gradient(180deg, rgba(42, 39, 34, 0.96) 0%, rgba(230, 81, 0, 0.08) 100%);
}
[data-theme="dark"] .up-rc-offer-price-value { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06); }
[data-theme="dark"] .up-rc-offer-price-num { text-shadow: none; }
[data-theme="dark"] .up-rc-offer-btn { background: rgba(42, 39, 34, 0.85); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); }
[data-theme="dark"] .up-rc-offer-btn:not(:disabled):hover { box-shadow: 0 6px 16px color-mix(in srgb, var(--rc-accent) 28%, transparent); }
[data-theme="dark"] .up-rc-offer-seal { background: linear-gradient(180deg, var(--rc-accent-soft) 0%, rgba(42, 39, 34, 0.8) 100%); }
[data-theme="dark"] .up-rc-offer-seal::before { opacity: 0; animation: none; }
[data-theme="dark"] .up-rc-offer-seal-sweep { display: none; }
[data-theme="dark"] .ps-recharge-pay-price-box { border-color: rgba(184, 77, 77, 0.2); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06); }
[data-theme="dark"] .ps-recharge-pay-submit { background: rgba(42, 39, 34, 0.85); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); }
[data-theme="dark"] .ps-recharge-pay-submit:not(:disabled):hover { box-shadow: 0 6px 16px rgba(74, 168, 125, 0.22); }
@media (max-width: 720px) {
    [data-theme="dark"] .up-an-brief-mark {
        border-bottom-color: rgba(228, 224, 218, 0.06);
    }
}

/* ===== 拍卖行：静止卡片 + 独立出价历史 ===== */
.is-auction .up-gf-crate.is-ready,
.is-auction .up-gf-crate.is-ready:hover,
.is-auction .up-gf-crate.is-ready .up-gf-crate-aura,
.is-auction .up-gf-crate.is-ready .up-gf-crate-shine,
.is-auction .up-gf-crate.is-ready .up-gf-crate-seal-col::before,
.is-auction .up-gf-crate.is-ready .up-gf-crate-seal-col::after,
.is-auction .up-gf-crate.is-ready .up-gf-crate-seal-ring::before,
.is-auction .up-gf-crate.is-ready .up-gf-crate-seal-aurora,
.is-auction .up-gf-crate.is-ready .up-gf-crate-seal-plinth,
.is-auction .up-gf-crate.is-ready .up-gf-crate-seal-orbit,
.is-auction .up-gf-crate.is-ready .up-gf-crate-seal-orbit i,
.is-auction .up-gf-crate.is-ready .up-gf-crate-seal-core,
.is-auction .up-gf-crate.is-ready .up-gf-claim-btn:not(:disabled),
.is-auction .up-gf-crate.is-ready .up-gf-claim-btn:not(:disabled)::after,
.is-auction .auction-status.is-claimable,
.is-auction .auction-status.is-claimable::before {
    animation: none !important;
    transform: none !important;
}

.is-auction .up-gf-crate.is-ready:hover {
    transform: none !important;
}

.is-auction .up-gf-crate.is-ready .up-gf-crate-shine {
    opacity: 0 !important;
}

.is-auction .up-gf-vault-chest-orbit,
.is-auction .up-gf-spark,
.is-auction .up-gf-vault-dust,
.is-auction .up-gf-vault-chest-aura,
.is-auction .up-gf-vault-chest-ring {
    animation: none !important;
}

.is-auction .auction-lot-seal {
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.is-auction .auction-lot-icon {
    width: 70%;
    height: 70%;
    object-fit: contain;
    display: block;
}

.is-auction .auction-lot.is-leading {
    border-color: color-mix(in srgb, var(--ps-gold) 45%, var(--ps-border));
    box-shadow:
        0 10px 28px color-mix(in srgb, var(--ps-gold) 14%, transparent),
        inset 0 1px 0 rgba(255, 255, 255, 0.55);
}

.is-auction .up-gf-crate-state.is-locked {
    color: var(--ps-ink-muted);
    background: var(--ps-surface-2);
    border-color: var(--ps-border);
}

.is-auction .auction-lot-body {
    gap: 10px;
}

.is-auction .auction-lot-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 2px 0 0;
}

.is-auction .auction-metric {
    min-width: 0;
    padding: 10px 12px;
    border-radius: var(--ps-radius-xs);
    background: var(--ps-surface-2);
    border: 1px solid var(--ps-border);
}

.is-auction .auction-metric.is-price {
    background: color-mix(in srgb, var(--ps-gold) 10%, var(--ps-surface-2));
    border-color: color-mix(in srgb, var(--ps-gold) 22%, var(--ps-border));
}

.is-auction .auction-metric.is-timer {
    background: color-mix(in srgb, var(--ps-accent) 8%, var(--ps-surface-2));
    border-color: color-mix(in srgb, var(--ps-accent) 18%, var(--ps-border));
}

.is-auction .auction-metric-label {
    display: block;
    margin-bottom: 4px;
    font-size: 11px;
    font-weight: 650;
    color: var(--ps-ink-faint);
    letter-spacing: 0.02em;
}

.is-auction .auction-metric-val {
    display: flex;
    align-items: baseline;
    gap: 4px;
    min-width: 0;
}

.is-auction .auction-metric strong {
    display: block;
    font-size: 16px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--ps-ink);
    font-variant-numeric: tabular-nums;
    line-height: 1.15;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.is-auction .auction-price {
    color: var(--ps-gold);
    font-size: 22px;
}

.is-auction .auction-metric-val em {
    font-style: normal;
    font-size: 12px;
    font-weight: 650;
    color: var(--ps-gold);
}

.is-auction .auction-metric.is-timer strong {
    color: var(--ps-accent);
    font-size: 15px;
}

.is-auction .auction-leader {
    font-size: 14px !important;
    font-weight: 700 !important;
}

.is-auction .auction-bid-row {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}

.is-auction .auction-bid-input {
    width: 100%;
    min-height: 44px;
    border: 1px solid var(--ps-border-strong);
    border-radius: var(--ps-radius-xs);
    padding: 0 12px;
    background: var(--ps-surface);
    color: var(--ps-ink);
    font-size: 16px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    box-sizing: border-box;
}

.is-auction .auction-bid-input:focus {
    outline: none;
    border-color: color-mix(in srgb, var(--ps-accent) 45%, var(--ps-border-strong));
    box-shadow: 0 0 0 3px var(--ps-accent-soft);
}

.is-auction .auction-lot-act .up-gf-claim-btn,
.is-auction .auction-lot-act .up-gift-claim-btn {
    width: 100%;
}

.is-auction .auction-err {
    margin: 8px 0 0;
    font-size: 12px;
    color: var(--ps-danger);
    text-align: center;
}

.is-auction .auction-leading-tag[hidden] {
    display: none !important;
}

.is-auction .up-gf-crate-foot .up-gift-row-quota {
    display: block;
    text-align: center;
    font-size: 12px;
    line-height: 1.45;
    color: var(--ps-ink-muted);
}

.is-auction .auction-bid-board {
    margin-top: 18px;
    padding: 16px 18px 14px;
    border-radius: var(--ps-radius-xl);
    background: var(--ps-surface);
    border: 1px solid var(--ps-border);
    box-shadow: var(--ps-shadow-sm);
}

.is-auction .auction-bid-board-hd {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.is-auction .auction-bid-board-kicker {
    margin: 0 0 2px;
    font-size: 11px;
    font-weight: 650;
    letter-spacing: 0.06em;
    color: var(--ps-ink-faint);
}

.is-auction .auction-bid-board-title {
    margin: 0;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--ps-ink);
}

.is-auction .auction-bid-board-count {
    flex-shrink: 0;
    font-size: 12px;
    font-weight: 650;
    color: var(--ps-ink-muted);
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--ps-surface-2);
    border: 1px solid var(--ps-border);
}

.is-auction .auction-bid-feed {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: min(52vh, 420px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.is-auction .auction-bid-item {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: var(--ps-radius-sm);
    background: var(--ps-surface-2);
    border: 1px solid var(--ps-border);
}

.is-auction .auction-bid-item.is-lead {
    border-color: color-mix(in srgb, var(--ps-gold) 28%, var(--ps-border));
    background: color-mix(in srgb, var(--ps-gold) 8%, var(--ps-surface-2));
}

.is-auction .auction-bid-avatar {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 750;
    color: var(--ps-accent);
    background: var(--ps-accent-soft);
    border: 1px solid color-mix(in srgb, var(--ps-accent) 16%, transparent);
}

.is-auction .auction-bid-item.is-lead .auction-bid-avatar {
    color: var(--ps-gold);
    background: var(--ps-gold-soft);
    border-color: color-mix(in srgb, var(--ps-gold) 22%, transparent);
}

.is-auction .auction-bid-who {
    min-width: 0;
}

.is-auction .auction-bid-who strong {
    display: block;
    font-size: 14px;
    font-weight: 750;
    color: var(--ps-ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.is-auction .auction-bid-who span {
    display: block;
    margin-top: 2px;
    font-size: 11px;
    color: var(--ps-ink-faint);
    font-variant-numeric: tabular-nums;
}

.is-auction .auction-bid-amt {
    text-align: right;
}

.is-auction .auction-bid-amt em {
    display: block;
    font-style: normal;
    font-size: 11px;
    font-weight: 650;
    color: var(--ps-ink-muted);
    margin-bottom: 2px;
}

.is-auction .auction-bid-item.is-lead .auction-bid-amt em {
    color: var(--ps-gold);
}

.is-auction .auction-bid-amt strong {
    display: block;
    font-size: 16px;
    font-weight: 800;
    color: var(--ps-gold);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}

.is-auction .auction-bid-empty {
    padding: 28px 16px;
    text-align: center;
    font-size: 13px;
    color: var(--ps-ink-muted);
    border: 1px dashed var(--ps-border);
    border-radius: var(--ps-radius-sm);
}

@media (min-width: 900px) {
    .is-auction .auction-lot-metrics {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .is-auction .auction-lot-body {
        display: flex !important;
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        grid-template-columns: none;
        grid-template-areas: none;
    }

    .is-auction .auction-lot-body .up-gf-crate-state {
        position: static;
        align-self: flex-start;
        margin: 0;
    }

    .is-auction .auction-lot-body .up-gf-crate-title {
        padding-right: 0;
    }

    .is-auction .auction-lot-metrics {
        grid-template-columns: 1fr 1fr;
    }

    .is-auction .auction-bid-row {
        flex-direction: row;
        align-items: stretch;
    }

    .is-auction .auction-bid-input {
        flex: 1;
        min-width: 0;
    }

    .is-auction .auction-lot-act .up-gf-claim-btn,
    .is-auction .auction-lot-act .up-gift-claim-btn {
        width: auto;
        min-width: 96px;
        flex-shrink: 0;
    }

    .is-auction .auction-bid-board {
        margin-top: 14px;
        padding: 14px;
    }
}

[data-theme="dark"] .is-auction .auction-lot.is-leading {
    border-color: rgba(201, 168, 76, 0.35);
    box-shadow:
        0 10px 28px rgba(201, 168, 76, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

[data-theme="dark"] .is-auction .auction-metric {
    background: rgba(42, 39, 34, 0.72);
    border-color: rgba(255, 255, 255, 0.06);
}

[data-theme="dark"] .is-auction .auction-metric.is-price {
    background: rgba(201, 168, 76, 0.1);
    border-color: rgba(201, 168, 76, 0.18);
}

[data-theme="dark"] .is-auction .auction-metric.is-timer {
    background: rgba(74, 168, 125, 0.08);
    border-color: rgba(74, 168, 125, 0.16);
}

[data-theme="dark"] .is-auction .auction-bid-input {
    background: rgba(32, 30, 26, 0.9);
    border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .is-auction .auction-bid-board {
    background: var(--ps-surface);
    border-color: rgba(255, 255, 255, 0.06);
}

[data-theme="dark"] .is-auction .auction-bid-item {
    background: rgba(42, 39, 34, 0.72);
    border-color: rgba(255, 255, 255, 0.06);
}

[data-theme="dark"] .is-auction .auction-bid-item.is-lead {
    background: rgba(201, 168, 76, 0.1);
    border-color: rgba(201, 168, 76, 0.2);
}

[data-theme="dark"] .is-auction .auction-bid-board-count {
    background: rgba(42, 39, 34, 0.85);
    border-color: rgba(255, 255, 255, 0.06);
}
