{"id":17,"date":"2026-05-26T16:23:12","date_gmt":"2026-05-26T08:23:12","guid":{"rendered":"http:\/\/remandram.top\/index.php\/kirby-pomodoro\/"},"modified":"2026-05-26T16:23:12","modified_gmt":"2026-05-26T08:23:12","slug":"kirby-pomodoro","status":"publish","type":"page","link":"https:\/\/remandram.top\/index.php\/kirby-pomodoro\/","title":{"rendered":"\u5361\u6bd4\u756a\u8304\u949f"},"content":{"rendered":"\t<style>\n\t\t.kirby-vg { --vg-ink: oklch(29% 0.08 335); --vg-pink: oklch(83% 0.13 356); --vg-berry: oklch(45% 0.18 14); --vg-blush: oklch(94% 0.06 354); --vg-cream: oklch(98% 0.018 82); --vg-sky: oklch(88% 0.085 214); --vg-mint: oklch(91% 0.08 165); --vg-lemon: oklch(91% 0.16 89); position: relative; isolation: isolate; overflow: hidden; min-height: 100vh; padding: clamp(34px, 7vw, 84px) min(5vw, 58px); color: var(--vg-ink); font-family: \"Microsoft YaHei UI\", \"PingFang SC\", sans-serif; background: radial-gradient(circle at 10% 12%, oklch(100% 0.04 78 \/ .92) 0 8%, transparent 21%), radial-gradient(circle at 84% 18%, oklch(92% 0.1 204 \/ .74) 0 12%, transparent 27%), radial-gradient(circle at 78% 84%, oklch(92% 0.09 352 \/ .72) 0 15%, transparent 34%), linear-gradient(145deg, oklch(99% 0.02 72), oklch(94% 0.065 350) 48%, oklch(91% 0.07 204)); }\n\t\t.kirby-vg::before { content: \"\"; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(circle, oklch(100% 0 0 \/ .68) 0 6px, transparent 7px), linear-gradient(135deg, transparent 0 42%, oklch(100% 0.04 82 \/ .48) 42% 46%, transparent 46% 100%); background-size: 92px 92px, 180px 180px; opacity: .62; mask-image: linear-gradient(to bottom, black, transparent 92%); }\n\t\t.kirby-vg * { box-sizing: border-box; }\n\t\t.kirby-vg-shell { position: relative; z-index: 1; width: min(1160px, 100%); margin: 0 auto; }\n\t\t.kirby-vg-hero, .kirby-vg-card { border: 1px solid oklch(100% 0 0 \/ .76); border-radius: 34px; background: oklch(99% 0.018 30 \/ .78); box-shadow: 0 28px 72px oklch(55% 0.14 350 \/ .18); backdrop-filter: blur(16px); }\n\t\t.kirby-vg-hero { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr); gap: 24px; align-items: center; min-height: 330px; padding: clamp(28px, 5vw, 60px); margin-bottom: 22px; overflow: hidden; background: radial-gradient(circle at 86% 18%, var(--vg-lemon), transparent 22%), linear-gradient(135deg, oklch(100% 0.015 30 \/ .86), oklch(94% 0.06 214 \/ .6)); }\n\t\t.kirby-vg-kicker { display: inline-flex; align-items: center; min-height: 34px; margin: 0 0 12px; padding: 6px 13px; border-radius: 999px; color: var(--vg-berry); font-size: .82rem; font-weight: 950; letter-spacing: 0; background: oklch(100% 0.03 82 \/ .82); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .85); }\n\t\t.kirby-vg h1, .kirby-vg h2 { margin: 0; color: var(--vg-berry); font-family: \"Comic Sans MS\", \"YouYuan\", \"Microsoft YaHei UI\", sans-serif; letter-spacing: 0; }\n\t\t.kirby-vg h1 { max-width: 9em; font-size: clamp(2.5rem, 7vw, 5.6rem); line-height: 1.02; text-shadow: 0 6px 0 oklch(100% 0 0 \/ .68); }\n\t\t.kirby-vg h2 { font-size: clamp(1.26rem, 3vw, 1.85rem); line-height: 1.15; }\n\t\t.kirby-vg p { margin: 12px 0 0; line-height: 1.8; }\n\t\t.kirby-vg-lede { max-width: 660px; font-size: clamp(1rem, 2vw, 1.16rem); color: oklch(36% 0.09 334); }\n\t\t.kirby-vg-orbit { position: relative; min-height: 245px; border-radius: 32px; background: radial-gradient(circle at 48% 48%, oklch(100% 0.02 34 \/ .92), transparent 36%), conic-gradient(from 130deg, oklch(91% 0.12 351), oklch(96% 0.09 84), oklch(89% 0.09 205), oklch(91% 0.12 351)); box-shadow: inset 0 0 0 12px oklch(100% 0 0 \/ .32), 0 24px 48px oklch(55% 0.15 350 \/ .16); }\n\t\t.kirby-vg-orbit::before, .kirby-vg-orbit::after { content: \"\"; position: absolute; border-radius: 999px; background: var(--vg-pink); box-shadow: 0 16px 28px oklch(48% 0.13 350 \/ .16); animation: kirbyVgFloat 5.4s ease-in-out infinite; }\n\t\t.kirby-vg-orbit::before { width: 112px; height: 112px; left: 15%; top: 25%; }\n\t\t.kirby-vg-orbit::after { width: 54px; height: 54px; right: 18%; bottom: 22%; background: var(--vg-lemon); animation-delay: -1.7s; }\n\t\t.kirby-vg-star { position: absolute; width: 52px; height: 52px; clip-path: polygon(50% 0, 62% 34%, 98% 35%, 69% 56%, 79% 91%, 50% 70%, 21% 91%, 31% 56%, 2% 35%, 38% 34%); background: oklch(92% 0.16 90); filter: drop-shadow(0 10px 16px oklch(52% 0.12 70 \/ .24)); animation: kirbyVgSpin 8s linear infinite; }\n\t\t.kirby-vg-star.s1 { left: 9%; bottom: 15%; }\n\t\t.kirby-vg-star.s2 { right: 13%; top: 16%; width: 36px; height: 36px; animation-duration: 6s; }\n\t\t.kirby-vg-grid, .kirby-vg-auth-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }\n\t\t.kirby-vg-card { padding: clamp(18px, 3vw, 28px); }\n\t\t.kirby-vg-card + .kirby-vg-card, .kirby-vg-panel { margin-top: 18px; }\n\t\t.kirby-vg-form { display: grid; gap: 12px; }\n\t\t.kirby-vg label { display: grid; gap: 7px; font-weight: 900; color: var(--vg-berry); }\n\t\t.kirby-vg input[type=\"text\"], .kirby-vg input[type=\"password\"], .kirby-vg input[type=\"file\"] { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid oklch(88% 0.05 350); border-radius: 18px; color: var(--vg-ink); background: oklch(100% 0.01 30 \/ .88); font: inherit; outline: none; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }\n\t\t.kirby-vg input:focus { border-color: var(--vg-pink); box-shadow: 0 0 0 5px oklch(83% 0.13 356 \/ .22); }\n\t\t.kirby-vg-button, .kirby-vg button { min-height: 48px; padding: 12px 20px; border: 0; border-radius: 999px; color: oklch(99% 0.01 15); background: linear-gradient(135deg, var(--vg-pink), var(--vg-berry)); font: inherit; font-weight: 900; text-decoration: none; cursor: pointer; box-shadow: 0 16px 30px oklch(50% 0.16 8 \/ .24); transition: transform .2s ease, box-shadow .2s ease, filter .2s ease; }\n\t\t.kirby-vg-button:hover, .kirby-vg button:hover { transform: translateY(-2px); filter: saturate(1.04); box-shadow: 0 20px 34px oklch(50% 0.16 8 \/ .28); }\n\t\t.kirby-vg button[disabled] { cursor: not-allowed !important; opacity: .62; filter: saturate(.86); transform: none !important; box-shadow: none !important; }\n\t\t.kirby-vg-auth-card { max-width: 720px; margin: 0 auto; }\n\t\t.kirby-vg-auth-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 0 0 18px; padding: 7px; border-radius: 999px; background: oklch(100% 0.02 42 \/ .58); }\n\t\t.kirby-vg-auth-tab { min-height: 44px !important; color: var(--vg-berry) !important; background: transparent !important; box-shadow: none !important; }\n\t\t.kirby-vg-auth-tab[aria-selected=\"true\"] { color: oklch(99% 0.01 15) !important; background: linear-gradient(135deg, var(--vg-pink), var(--vg-berry)) !important; }\n\t\t.kirby-vg-auth-panel[hidden] { display: none; }\n\t\t.kirby-vg-frame-picker { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }\n\t\t.kirby-vg-frame-choice { position: relative; min-height: 74px; place-items: center; padding: 10px; border: 2px solid oklch(91% 0.06 350); border-radius: 20px; text-align: center; background: oklch(100% 0.016 42 \/ .7); cursor: pointer; }\n\t\t.kirby-vg-frame-choice input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }\n\t\t.kirby-vg-frame-choice:has(input:checked) { border-color: var(--vg-berry); box-shadow: 0 0 0 5px oklch(83% 0.13 356 \/ .18); }\n\t\t.kirby-vg-notice { margin: 0 0 18px; padding: 14px 16px; border-radius: 20px; color: var(--vg-berry); font-weight: 900; background: var(--vg-lemon); box-shadow: 0 14px 30px oklch(62% 0.12 82 \/ .18); }\n\t\t.kirby-vg-toolbar, .kirby-vg-tabs, .kirby-vg-stats { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin: 0 0 18px; }\n\t\t.kirby-vg-welcome { display: grid; gap: 3px; }\n\t\t.kirby-vg-welcome strong { color: var(--vg-berry); font-size: 1.1rem; }\n\t\t.kirby-vg-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }\n\t\t.kirby-vg-stat { min-height: 86px; padding: 16px; border-radius: 24px; background: oklch(100% 0.012 40 \/ .7); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .7); }\n\t\t.kirby-vg-stat b { display: block; color: var(--vg-berry); font-size: clamp(1.6rem, 4vw, 2.45rem); line-height: 1; }\n\t\t.kirby-vg-id-card { display: inline-grid; grid-template-columns: auto 1fr; gap: 12px; align-items: center; max-width: 100%; padding: 10px 14px 10px 10px; border-radius: 999px; background: oklch(100% 0.018 45 \/ .74); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .82), 0 16px 34px oklch(50% 0.13 340 \/ .12); }\n\t\t.kirby-vg-id-card-compact { padding: 6px 10px 6px 6px; transform: scale(.92); transform-origin: left center; }\n\t\t.kirby-vg-avatar { position: relative; display: grid; place-items: center; width: 62px; height: 62px; border-radius: 999px; color: oklch(99% 0.01 15); background: radial-gradient(circle at 34% 28%, oklch(100% 0.02 25 \/ .9), transparent 18%), var(--vg-pink); box-shadow: 0 0 0 6px oklch(100% 0.02 30 \/ .75), 0 14px 26px oklch(51% 0.13 340 \/ .2); font-family: \"Comic Sans MS\", \"YouYuan\", sans-serif; font-size: 1.65rem; font-weight: 950; }\n\t\t.kirby-vg-sticker { display: block; background-color: oklch(98% 0.02 45 \/ .94); background-position: center; background-repeat: no-repeat; background-size: cover; box-shadow: 0 9px 18px oklch(50% 0.12 80 \/ .18), inset 0 0 0 1px oklch(100% 0 0 \/ .56); pointer-events: none; }\n\t\t.kirby-vg-avatar .kirby-vg-sticker { position: absolute; right: -8px; bottom: -5px; width: 30px; height: 30px; border-radius: 11px; transform: rotate(8deg); }\n\t\t.kirby-vg-shop-preview-card .kirby-vg-sticker { right: -9px; bottom: -6px; width: 34px; height: 34px; }\n\t\t.kirby-vg-decoration-icon.kirby-vg-sticker { width: 56px; height: 56px; border-radius: 20px; transform: none; }\n\t\t.kirby-vg-id-frame_star_ring .kirby-vg-avatar { box-shadow: 0 0 0 5px var(--vg-lemon), 0 0 0 11px oklch(100% 0.02 30 \/ .78), 0 14px 26px oklch(51% 0.13 340 \/ .2); }\n\t\t.kirby-vg-id-frame_cloud_puff .kirby-vg-avatar { border-radius: 34px 22px 34px 22px; background: radial-gradient(circle at 32% 30%, oklch(100% 0.02 30 \/ .92), transparent 18%), var(--vg-sky); color: var(--vg-berry); }\n\t\t.kirby-vg-id-frame_candy_pop .kirby-vg-avatar { background: repeating-linear-gradient(135deg, var(--vg-pink), var(--vg-pink) 9px, var(--vg-lemon) 9px, var(--vg-lemon) 18px); color: var(--vg-berry); }\n\t\t.kirby-vg-id-frame_rainbow_twist .kirby-vg-avatar { background: conic-gradient(from 135deg, var(--vg-pink), var(--vg-lemon), var(--vg-sky), var(--vg-pink)); color: var(--vg-berry); box-shadow: 0 0 0 6px oklch(100% 0.02 30 \/ .76), 0 16px 28px oklch(51% 0.13 340 \/ .2); }\n\t\t.kirby-vg-id-frame_cookie_star .kirby-vg-avatar { background: radial-gradient(circle at 32% 28%, oklch(100% 0.03 40 \/ .9), transparent 18%), linear-gradient(145deg, oklch(93% 0.11 88), oklch(100% 0.02 40)); color: var(--vg-berry); box-shadow: 0 0 0 6px oklch(100% 0.02 30 \/ .76), 0 16px 28px oklch(51% 0.13 340 \/ .18); }\n\t\t.kirby-vg-id-frame_night_cloud .kirby-vg-avatar { border-radius: 34px 34px 24px 24px; background: radial-gradient(circle at 32% 28%, oklch(100% 0.02 40 \/ .88), transparent 18%), linear-gradient(145deg, oklch(86% 0.08 242), oklch(71% 0.12 274)); color: oklch(99% 0.02 40); box-shadow: 0 0 0 6px oklch(100% 0.02 30 \/ .72), 0 16px 28px oklch(51% 0.13 340 \/ .18); }\n\t\t.kirby-vg-id-frame_pudding_glow .kirby-vg-avatar { background: radial-gradient(circle at 32% 28%, oklch(100% 0.03 40 \/ .92), transparent 18%), linear-gradient(145deg, oklch(94% 0.08 88), oklch(98% 0.05 65)); color: var(--vg-berry); box-shadow: 0 0 0 6px oklch(100% 0.02 30 \/ .76), 0 16px 28px oklch(51% 0.13 340 \/ .18); }\n\t\t.kirby-vg-id-copy { display: grid; gap: 2px; min-width: 0; }\n\t\t.kirby-vg-id-copy strong { overflow: hidden; color: var(--vg-berry); font-size: 1.05rem; text-overflow: ellipsis; white-space: nowrap; }\n\t\t.kirby-vg-id-copy em { color: oklch(43% 0.1 334); font-style: normal; font-weight: 900; }\n\t\t.kirby-vg-checkin-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, .42fr); gap: 18px; align-items: stretch; margin-bottom: 18px; overflow: hidden; background: radial-gradient(circle at 92% 8%, var(--vg-lemon), transparent 22%), linear-gradient(135deg, oklch(100% 0.018 45 \/ .86), oklch(93% 0.07 204 \/ .64)); }\n\t\t.kirby-vg-checkin-copy h2, .kirby-vg-shop-card h2 { font-size: clamp(1.55rem, 4vw, 2.4rem); }\n\t\t.kirby-vg-checkin-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }\n\t\t.kirby-vg-checkin-meta span, .kirby-vg-wallet { min-height: 76px; padding: 14px; border-radius: 22px; color: var(--vg-berry); background: oklch(100% 0.018 45 \/ .74); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .75); font-weight: 900; }\n\t\t.kirby-vg-checkin-meta b, .kirby-vg-wallet b { display: block; font-size: clamp(1.5rem, 4vw, 2.2rem); line-height: 1; }\n\t\t.kirby-vg-checkin-action { display: grid; place-items: center; gap: 12px; padding: 18px; border-radius: 28px; text-align: center; background: oklch(100% 0.02 60 \/ .62); }\n\t\t.kirby-vg-checkin-action form { margin: 0; }\n\t\t.kirby-vg-checkin-action small { color: oklch(42% 0.08 334); font-weight: 900; }\n\t\t.kirby-vg-checkin-orb { display: grid; place-items: center; width: 116px; height: 116px; border-radius: 50%; background: conic-gradient(from 120deg, var(--vg-lemon), var(--vg-pink), var(--vg-sky), var(--vg-lemon)); box-shadow: inset 0 0 0 11px oklch(100% 0 0 \/ .34), 0 22px 42px oklch(51% 0.13 340 \/ .18); animation: kirbyVgPulse 3.5s ease-in-out infinite; }\n\t\t.kirby-vg-checkin-orb span { color: oklch(100% 0.02 40); font-size: 3rem; text-shadow: 0 5px 14px oklch(45% 0.12 82 \/ .28); }\n\t\t.kirby-vg-mood-card { display: grid; grid-template-columns: minmax(180px, .34fr) minmax(0, 1fr); gap: 18px; align-items: stretch; margin-bottom: 18px; overflow: hidden; background: radial-gradient(circle at 8% 15%, oklch(100% 0.045 88 \/ .72), transparent 26%), radial-gradient(circle at 96% 12%, oklch(91% 0.08 210 \/ .68), transparent 24%), linear-gradient(135deg, oklch(100% 0.018 45 \/ .86), oklch(96% 0.065 350 \/ .68)); }\n\t\t.kirby-vg-mood-copy { display: grid; align-content: center; gap: 8px; }\n\t\t.kirby-vg-mood-copy h2, .kirby-vg-mood-calendar-head h2 { margin: 0; color: var(--vg-berry); font-size: clamp(1.45rem, 3.6vw, 2.2rem); }\n\t\t.kirby-vg-mood-copy p:not(.kirby-vg-kicker) { margin: 0; color: oklch(40% 0.09 334); font-weight: 900; line-height: 1.7; }\n\t\t.kirby-vg-mood-form { display: grid; gap: 12px; margin: 0; }\n\t\t.kirby-vg-mood-options { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }\n\t\t.kirby-vg-mood-option { position: relative; display: grid; min-height: 150px; align-content: center; gap: 8px; padding: 14px 10px; border: 1px solid oklch(100% 0 0 \/ .72); border-radius: 24px; color: var(--vg-berry); text-align: center; background: linear-gradient(145deg, oklch(100% 0.018 45 \/ .72), oklch(96% 0.045 350 \/ .56)); box-shadow: 0 14px 28px oklch(50% 0.12 335 \/ .1); cursor: pointer; transition: transform .22s ease, box-shadow .22s ease, background .22s ease; }\n\t\t.kirby-vg-mood-option:hover { transform: translateY(-3px); box-shadow: 0 18px 34px oklch(50% 0.12 335 \/ .15); }\n\t\t.kirby-vg-mood-option input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }\n\t\t.kirby-vg-mood-option:has(input:checked) { background: linear-gradient(145deg, oklch(100% 0.04 88 \/ .92), oklch(96% 0.07 350 \/ .78)); box-shadow: inset 0 0 0 3px var(--vg-lemon), 0 18px 34px oklch(50% 0.12 335 \/ .17); transform: translateY(-2px); }\n\t\t.kirby-vg-mood-icon { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto; border-radius: 19px; color: var(--vg-berry); background: var(--vg-lemon); box-shadow: 0 12px 22px oklch(52% 0.12 80 \/ .16); font-weight: 950; }\n\t\t.kirby-vg-mood-option strong { font-size: 1rem; line-height: 1.1; }\n\t\t.kirby-vg-mood-option small { color: oklch(39% 0.08 334); font-size: .78rem; font-weight: 900; line-height: 1.45; }\n\t\t.kirby-vg-mood-happy .kirby-vg-mood-icon { background: linear-gradient(145deg, var(--vg-lemon), oklch(98% 0.06 42)); }\n\t\t.kirby-vg-mood-sleepy .kirby-vg-mood-icon { background: linear-gradient(145deg, oklch(92% 0.07 236), oklch(98% 0.035 260)); }\n\t\t.kirby-vg-mood-focus .kirby-vg-mood-icon { background: linear-gradient(145deg, oklch(90% 0.08 180), oklch(98% 0.035 160)); }\n\t\t.kirby-vg-mood-lucky .kirby-vg-mood-icon { background: linear-gradient(145deg, oklch(92% 0.11 142), oklch(99% 0.04 95)); }\n\t\t.kirby-vg-mood-dessert .kirby-vg-mood-icon { background: linear-gradient(145deg, oklch(96% 0.08 350), oklch(98% 0.06 40)); }\n\t\t.kirby-vg-mood-action { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-radius: 20px; background: oklch(100% 0.018 45 \/ .68); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .68); }\n\t\t.kirby-vg-mood-action span { color: var(--vg-berry); font-weight: 950; }\n\t\t.kirby-vg-mood-action button { min-height: 42px !important; padding: 9px 16px !important; box-shadow: none !important; }\n\t\t.kirby-vg-mood-calendar-card { margin-bottom: 18px; overflow: hidden; background: radial-gradient(circle at 88% 12%, oklch(100% 0.045 88 \/ .68), transparent 22%), linear-gradient(135deg, oklch(100% 0.02 60 \/ .74), oklch(93% 0.055 206 \/ .56)); }\n\t\t.kirby-vg-mood-calendar-head { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 14px; }\n\t\t.kirby-vg-mood-calendar-head span { display: grid; place-items: center; min-width: 86px; min-height: 48px; padding: 8px 12px; border-radius: 18px; color: var(--vg-berry); background: linear-gradient(145deg, var(--vg-lemon), oklch(98% 0.055 350 \/ .84)); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .72); font-weight: 950; }\n\t\t.kirby-vg-mood-calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; }\n\t\t.kirby-vg-mood-day { display: grid; grid-template-rows: auto auto 1fr auto; gap: 6px; min-height: 156px; padding: 12px 9px; border: 1px solid oklch(100% 0 0 \/ .7); border-radius: 22px; color: var(--vg-berry); text-align: center; background: oklch(100% 0.018 45 \/ .62); box-shadow: 0 13px 26px oklch(50% 0.12 335 \/ .09); }\n\t\t.kirby-vg-mood-day.is-today { box-shadow: inset 0 0 0 2px var(--vg-lemon), 0 15px 28px oklch(50% 0.12 335 \/ .14); }\n\t\t.kirby-vg-mood-day.has-mood { background: linear-gradient(145deg, oklch(100% 0.025 48 \/ .78), oklch(96% 0.045 350 \/ .64)); }\n\t\t.kirby-vg-mood-day span, .kirby-vg-mood-day em { font-size: .78rem; font-style: normal; font-weight: 950; }\n\t\t.kirby-vg-mood-day strong { font-size: .9rem; }\n\t\t.kirby-vg-mood-day i { display: grid; place-items: center; width: 44px; height: 44px; margin: 4px auto; border-radius: 16px; color: var(--vg-berry); background: oklch(100% 0 0 \/ .72); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .6); font-style: normal; font-weight: 950; }\n\t\t.kirby-vg-pomodoro-card { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(280px, .7fr); gap: 18px; align-items: stretch; margin-bottom: 18px; overflow: hidden; background: radial-gradient(circle at 9% 10%, oklch(100% 0.04 86 \/ .82), transparent 24%), radial-gradient(circle at 92% 14%, oklch(90% 0.09 208 \/ .68), transparent 26%), linear-gradient(135deg, oklch(100% 0.018 45 \/ .86), oklch(94% 0.07 350 \/ .68)); }\n\t\t.kirby-vg-pomodoro-copy h2 { font-size: clamp(1.7rem, 4vw, 2.8rem); }\n\t\t.kirby-vg-pomodoro-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }\n\t\t.kirby-vg-pomodoro-stats span { min-height: 76px; padding: 14px; border-radius: 22px; color: var(--vg-berry); background: oklch(100% 0.018 45 \/ .72); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .74); font-weight: 900; }\n\t\t.kirby-vg-pomodoro-stats b { display: block; font-size: clamp(1.1rem, 2.2vw, 1.48rem); line-height: 1.08; letter-spacing: 0; }\n\t\t.kirby-vg-pomodoro-stats b[data-kirby-pomodoro-cooldown], .kirby-vg-pomodoro-status-stat b { font-size: clamp(.96rem, 1.8vw, 1.24rem); line-height: 1.12; }\n\t\t.kirby-vg-pomodoro-console { display: grid; gap: 12px; align-content: center; padding: 18px; border-radius: 30px; background: oklch(100% 0.02 60 \/ .62); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .62); }\n\t\t.kirby-vg-timer-face { position: relative; display: grid; place-items: center; min-height: 168px; border-radius: 36px; color: var(--vg-berry); background: radial-gradient(circle at 50% 44%, oklch(100% 0.03 50 \/ .88), transparent 36%), conic-gradient(from -40deg, var(--vg-pink), var(--vg-lemon), var(--vg-sky), var(--vg-pink)); box-shadow: inset 0 0 0 12px oklch(100% 0 0 \/ .28), 0 22px 44px oklch(51% 0.13 340 \/ .16); }\n\t\t.kirby-vg-timer-face span { position: relative; z-index: 1; font-family: \"Comic Sans MS\", \"YouYuan\", \"Microsoft YaHei UI\", sans-serif; font-size: clamp(2.7rem, 8vw, 4.6rem); font-weight: 950; line-height: 1; text-shadow: 0 6px 0 oklch(100% 0 0 \/ .58); }\n\t\t.kirby-vg-timer-face i { position: absolute; right: 18px; top: 16px; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 999px; color: var(--vg-berry); background: var(--vg-lemon); box-shadow: 0 10px 20px oklch(50% 0.12 80 \/ .18); font-style: normal; animation: kirbyVgPulse 3s ease-in-out infinite; }\n\t\t.kirby-vg-pomodoro-setting { grid-template-columns: 1fr auto !important; align-items: center; gap: 12px !important; padding: 10px 10px 10px 16px; border-radius: 999px; background: linear-gradient(135deg, oklch(100% 0.022 50 \/ .86), oklch(96% 0.045 352 \/ .74)); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .72), 0 12px 24px oklch(50% 0.12 335 \/ .08); }\n\t\t.kirby-vg-pomodoro-setting input { width: 106px !important; min-height: 46px !important; padding: 8px 18px !important; border: 0 !important; border-radius: 999px !important; color: var(--vg-berry); text-align: center; background: radial-gradient(circle at 28% 20%, oklch(100% 0.03 70 \/ .9), transparent 34%), oklch(100% 0.016 38 \/ .94); box-shadow: inset 0 -4px 0 oklch(83% 0.13 356 \/ .14), inset 0 0 0 1px oklch(100% 0 0 \/ .86), 0 10px 20px oklch(54% 0.12 335 \/ .12); font-weight: 950; outline: none; appearance: textfield; -moz-appearance: textfield; transition: box-shadow .2s ease, transform .2s ease, background .2s ease; }\n\t\t.kirby-vg-pomodoro-setting input:focus { transform: translateY(-1px); background: oklch(100% 0.02 52 \/ .98); box-shadow: inset 0 -4px 0 oklch(83% 0.13 356 \/ .16), inset 0 0 0 1px oklch(100% 0 0 \/ .9), 0 0 0 5px oklch(83% 0.13 356 \/ .18), 0 12px 24px oklch(54% 0.12 335 \/ .14); }\n\t\t.kirby-vg-pomodoro-setting input::-webkit-outer-spin-button, .kirby-vg-pomodoro-setting input::-webkit-inner-spin-button { margin: 0; opacity: .28; }\n\t\t.kirby-vg-pomodoro-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }\n\t\t.kirby-vg-pomodoro-actions button, .kirby-vg-pomodoro-claim button { min-height: 42px !important; padding: 8px 12px !important; box-shadow: none !important; }\n\t\t.kirby-vg-pomodoro-actions button:nth-child(2) { color: var(--vg-berry); background: var(--vg-lemon); }\n\t\t.kirby-vg-pomodoro-actions button:nth-child(3) { color: var(--vg-berry); background: oklch(100% 0.018 45 \/ .86); }\n\t\t.kirby-vg-pomodoro-claim { margin: 0; }\n\t\t.kirby-vg-pomodoro-claim button { width: 100%; }\n\t\t.kirby-vg-pomodoro-console small { color: oklch(42% 0.08 334); font-weight: 900; text-align: center; }\n\t\t.kirby-vg-shop-card { margin-bottom: 18px; }\n\t\t.kirby-vg-shop-head { display: flex; justify-content: space-between; gap: 16px; align-items: start; margin-bottom: 18px; }\n\t\t.kirby-vg-wallet { min-width: 156px; text-align: center; background: linear-gradient(135deg, oklch(100% 0.02 70 \/ .8), oklch(93% 0.11 88 \/ .72)); }\n\t\t.kirby-vg-shop-preview { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: space-between; margin-bottom: 18px; padding: 14px; border-radius: 26px; background: linear-gradient(135deg, oklch(100% 0.024 60 \/ .72), oklch(94% 0.06 350 \/ .52)); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .72); }\n\t\t.kirby-vg-shop-preview-card { transform-origin: left center; transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-radius .2s ease; }\n\t\t.kirby-vg-shop-preview-copy { display: grid; gap: 10px; min-width: min(360px, 100%); flex: 1; justify-items: start; }\n\t\t.kirby-vg-shop-preview p { max-width: 520px; margin: 0; font-weight: 900; color: oklch(39% 0.09 334); }\n\t\t.kirby-vg-preview-reset, .kirby-vg-preview-wear, .kirby-vg-unequip-button { min-height: 38px !important; padding: 8px 13px !important; box-shadow: none !important; }\n\t\t.kirby-vg-preview-reset, .kirby-vg-preview-wear { color: var(--vg-berry) !important; background: oklch(100% 0.018 45 \/ .9) !important; box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .72) !important; }\n\t\t.kirby-vg-unequip-button { color: var(--vg-berry) !important; background: var(--vg-lemon) !important; }\n\t\t.kirby-vg-shop-group + .kirby-vg-shop-group { margin-top: 18px; }\n\t\t.kirby-vg-shop-group-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 10px; }\n\t\t.kirby-vg-shop-group-head h3 { margin: 0; color: var(--vg-berry); font-size: 1.05rem; }\n\t\t.kirby-vg-shop-scroll-controls { display: flex; gap: 8px; flex-shrink: 0; }\n\t\t.kirby-vg-shop-scroll-controls button { min-height: 38px !important; width: 38px; padding: 0 !important; border-radius: 999px; color: var(--vg-berry) !important; background: oklch(100% 0.02 45 \/ .92) !important; box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .72) !important; }\n\t\t.kirby-vg-shop-scroll-controls button:disabled { opacity: .42; cursor: default; }\n\t\t.kirby-vg-decoration-rail { overflow-x: auto; overflow-y: hidden; padding-bottom: 8px; scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-x: contain; scrollbar-width: none; }\n\t\t.kirby-vg-decoration-rail::-webkit-scrollbar { display: none; }\n\t\t.kirby-vg-decoration-grid { display: flex; gap: 12px; min-width: 100%; }\n\t\t.kirby-vg-decoration-card { display: grid; grid-template-rows: auto 1fr auto; gap: 12px; flex: 0 0 calc((100% - 36px) \/ 4); min-height: 236px; padding: 14px; border: 1px solid oklch(100% 0 0 \/ .75); border-radius: 24px; background: linear-gradient(145deg, oklch(100% 0.018 45 \/ .72), oklch(96% 0.045 350 \/ .62)); box-shadow: 0 16px 32px oklch(50% 0.12 335 \/ .12); scroll-snap-align: start; scroll-snap-stop: always; transition: transform .22s ease, box-shadow .22s ease, background .22s ease; }\n\t\t.kirby-vg-decoration-card.is-equipped { background: linear-gradient(145deg, oklch(100% 0.03 88 \/ .82), oklch(94% 0.08 350 \/ .68)); box-shadow: inset 0 0 0 2px var(--vg-lemon), 0 18px 34px oklch(50% 0.12 335 \/ .16); }\n\t\t.kirby-vg-decoration-card.is-previewing { transform: translateY(-3px); box-shadow: inset 0 0 0 2px var(--vg-pink), 0 22px 38px oklch(50% 0.12 335 \/ .18); }\n\t\t.kirby-vg-decoration-icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 20px; color: var(--vg-berry); background: var(--vg-lemon); box-shadow: 0 12px 22px oklch(52% 0.12 80 \/ .16); font-weight: 950; }\n\t\t.kirby-vg-decoration-copy { display: grid; gap: 6px; align-content: start; }\n\t\t.kirby-vg-decoration-copy strong { color: var(--vg-berry); line-height: 1.2; }\n\t\t.kirby-vg-decoration-copy span { color: oklch(38% 0.08 334); font-size: .88rem; line-height: 1.6; }\n\t\t.kirby-vg-decoration-foot { display: grid; gap: 8px; }\n\t\t.kirby-vg-decoration-foot em { color: var(--vg-berry); font-style: normal; font-weight: 950; }\n\t\t.kirby-vg-decoration-foot form { margin: 0; }\n\t\t.kirby-vg-decoration-foot button { width: 100%; min-height: 40px !important; padding: 8px 12px !important; box-shadow: none !important; }\n\t\t.kirby-vg-tabs { justify-content: flex-start; padding: 7px; border-radius: 999px; background: oklch(100% 0.02 42 \/ .58); width: max-content; max-width: 100%; }\n\t\t.kirby-vg-tab { min-height: 42px !important; padding: 9px 16px !important; color: var(--vg-berry) !important; background: transparent !important; box-shadow: none !important; }\n\t\t.kirby-vg-tab[aria-selected=\"true\"] { color: oklch(99% 0.01 15) !important; background: linear-gradient(135deg, var(--vg-pink), var(--vg-berry)) !important; }\n\t\t.kirby-vg-panel[hidden] { display: none; }\n\t\t.kirby-vg-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 220px)); justify-content: start; align-items: start; gap: 16px; }\n\t\t.kirby-vg-item { position: relative; overflow: hidden; width: 100%; max-width: 220px; margin: 0; border: 9px solid oklch(100% 0.01 26 \/ .84); border-radius: 26px; background: oklch(94% 0.055 356); box-shadow: 0 16px 34px oklch(50% 0.12 335 \/ .14); transform: translateZ(0); transition: transform .24s ease, box-shadow .24s ease; }\n\t\t.kirby-vg-item::after { content: \"\u2605\"; position: absolute; top: 8px; right: 8px; z-index: 2; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 999px; color: oklch(45% 0.18 14); background: oklch(91% 0.16 89); box-shadow: 0 9px 18px oklch(50% 0.12 80 \/ .18); font-weight: 950; pointer-events: none; }\n\t\t.kirby-vg-item.kirby-vg-frame-cloud { border-radius: 34px 22px 34px 22px; border-style: dashed; border-color: oklch(91% 0.08 210); background: oklch(95% 0.04 210); }\n\t\t.kirby-vg-item.kirby-vg-frame-cloud::after { content: \"\u2601\"; background: oklch(91% 0.08 210); }\n\t\t.kirby-vg-item.kirby-vg-frame-candy { border-color: oklch(91% 0.15 88); background: repeating-linear-gradient(135deg, oklch(100% 0.02 40), oklch(100% 0.02 40) 10px, oklch(96% 0.08 352) 10px, oklch(96% 0.08 352) 20px); box-shadow: inset 0 0 0 4px oklch(83% 0.13 356 \/ .55), 0 16px 34px oklch(50% 0.12 335 \/ .14); }\n\t\t.kirby-vg-item.kirby-vg-frame-candy::after { content: \"\u25c6\"; background: oklch(91% 0.15 88); }\n\t\t.kirby-vg-item:hover { transform: translateY(-5px) rotate(-.7deg); box-shadow: 0 24px 42px oklch(50% 0.12 335 \/ .2); }\n\t\t.kirby-vg-image-button { display: block; width: 100%; min-height: 0 !important; padding: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }\n\t\t.kirby-vg-image-button:hover { transform: none !important; filter: none !important; box-shadow: none !important; }\n\t\t.kirby-vg-image-button:focus-visible { outline: 3px solid oklch(83% 0.13 356 \/ .82); outline-offset: -3px; }\n\t\t.kirby-vg-image-button img, .kirby-vg-item > img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; transition: transform .28s ease; }\n\t\t.kirby-vg-item:hover img { transform: scale(1.05); }\n\t\t.kirby-vg-caption { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; min-height: 44px; padding: 8px 10px; color: var(--vg-berry); font-size: .88rem; font-weight: 900; background: oklch(99% 0.018 28 \/ .9); }\n\t\t.kirby-vg-caption > span:first-child { overflow: hidden; min-width: 0; text-overflow: ellipsis; white-space: nowrap; }\n\t\t.kirby-vg-author-link { color: var(--vg-berry); text-decoration: none; }\n\t\t.kirby-vg-caption-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 7px; }\n\t\t.kirby-vg-star-form { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-width: 0; margin: 0 !important; padding: 0 !important; overflow: visible !important; line-height: 1; white-space: normal; }\n\t\t.kirby-vg .kirby-vg-star-button, .kirby-vg .kirby-vg-star-link { appearance: none !important; -webkit-appearance: none !important; position: relative !important; box-sizing: border-box !important; display: inline-block !important; flex: 0 0 56px !important; width: 56px !important; min-width: 56px !important; max-width: 56px !important; height: 30px !important; min-height: 30px !important; max-height: 30px !important; margin: 0 !important; padding: 0 !important; border: 1px solid oklch(100% 0.012 40 \/ .92) !important; border-radius: 999px !important; color: var(--vg-berry) !important; background: linear-gradient(180deg, oklch(98% 0.08 90), oklch(91% 0.16 89)) !important; box-shadow: 0 5px 10px oklch(56% 0.13 73 \/ .14) !important; font: 950 11px\/1 -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Microsoft YaHei UI\", sans-serif !important; letter-spacing: 0 !important; text-decoration: none !important; text-transform: none !important; white-space: nowrap !important; overflow: hidden !important; vertical-align: middle !important; cursor: pointer; transform: none !important; filter: none !important; transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease; }\n\t\t.kirby-vg .kirby-vg-star-button:hover, .kirby-vg .kirby-vg-star-link:hover { transform: translateY(-1px) !important; box-shadow: 0 7px 13px oklch(56% 0.13 73 \/ .18) !important; filter: none !important; }\n\t\t.kirby-vg .kirby-vg-star-button:focus-visible, .kirby-vg .kirby-vg-star-link:focus-visible { outline: 2px solid oklch(83% 0.13 356 \/ .72) !important; outline-offset: 2px; }\n\t\t.kirby-vg .kirby-vg-star-button::before, .kirby-vg .kirby-vg-star-link::before { content: \"\"; position: absolute; z-index: 1; left: 9px; top: 50%; display: block; width: 15px; height: 15px; background: oklch(45% 0.18 14); -webkit-clip-path: polygon(50% 0%, 62% 34%, 98% 35%, 69% 56%, 79% 91%, 50% 70%, 21% 91%, 31% 56%, 2% 35%, 38% 34%); clip-path: polygon(50% 0%, 62% 34%, 98% 35%, 69% 56%, 79% 91%, 50% 70%, 21% 91%, 31% 56%, 2% 35%, 38% 34%); transform: translateY(-50%); filter: drop-shadow(0 2px 2px oklch(50% 0.13 73 \/ .18)); pointer-events: none; }\n\t\t.kirby-vg .kirby-vg-star-icon { display: none !important; }\n\t\t.kirby-vg .kirby-vg-star-count { position: absolute !important; z-index: 2 !important; right: 8px !important; top: 50% !important; display: flex !important; align-items: center !important; justify-content: center !important; box-sizing: border-box !important; width: 23px !important; min-width: 23px !important; max-width: 23px !important; height: 17px !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; color: var(--vg-berry) !important; background: transparent !important; box-shadow: none !important; font: inherit !important; line-height: 1 !important; text-align: center !important; font-variant-numeric: tabular-nums; transform: translateY(-50%) !important; }\n\t\t.kirby-vg-star-button.is-starred { color: oklch(99% 0.01 20) !important; background: linear-gradient(135deg, var(--vg-pink), var(--vg-berry)) !important; }\n\t\t.kirby-vg-star-button.is-starred::before { background: oklch(94% 0.17 89); }\n\t\t.kirby-vg-star-button.is-starred .kirby-vg-star-count { color: oklch(99% 0.01 20) !important; }\n\t\t.kirby-vg-delete { min-height: 34px !important; padding: 7px 10px !important; font-size: .82rem !important; box-shadow: none !important; }\n\t\t.kirby-vg-comment-summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 10px; border-top: 1px solid oklch(100% 0 0 \/ .72); color: var(--vg-berry); background: linear-gradient(180deg, oklch(100% 0.015 42 \/ .88), oklch(94% 0.04 210 \/ .52)); font-size: .78rem; font-weight: 950; }\n\t\t.kirby-vg-comment-summary span { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }\n\t\t.kirby-vg-comment-summary b { display: grid; place-items: center; min-width: 25px; height: 25px; padding: 0 7px; border-radius: 999px; color: var(--vg-berry); background: var(--vg-lemon); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .58); font-size: .78rem; }\n\t\t.kirby-vg-comment-summary a { min-height: 32px; padding: 8px 11px; border-radius: 999px; color: var(--vg-berry); background: oklch(100% 0.018 45 \/ .88); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .78); text-decoration: none; white-space: nowrap; }\n\t\t.kirby-vg-detail-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(280px, .62fr); gap: 18px; align-items: start; margin-bottom: 18px; }\n\t\t.kirby-vg-detail-image-card { overflow: hidden; padding: 0; }\n\t\t.kirby-vg-detail-image-frame { padding: clamp(12px, 2vw, 18px); background: linear-gradient(135deg, oklch(100% 0.018 45 \/ .82), oklch(94% 0.05 210 \/ .58)); }\n\t\t.kirby-vg-detail-image-frame img { display: block; width: 100%; max-height: 72vh; object-fit: contain; border: 10px solid oklch(100% 0.01 26 \/ .88); border-radius: 28px; background: oklch(96% 0.02 40); box-shadow: 0 22px 46px oklch(50% 0.12 335 \/ .16); }\n\t\t.kirby-vg-detail-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px 16px; color: var(--vg-berry); font-weight: 950; background: oklch(99% 0.018 28 \/ .9); }\n\t\t.kirby-vg-detail-meta h2 { max-width: 620px; margin: 0; font-size: clamp(1.2rem, 3vw, 2rem); overflow-wrap: anywhere; }\n\t\t.kirby-vg-detail-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: flex-end; }\n\t\t.kirby-vg-detail-actions .kirby-vg-button { min-height: 34px; padding: 8px 13px; box-shadow: none; }\n\t\t.kirby-vg-detail-author { display: grid; gap: 16px; background: radial-gradient(circle at 90% 8%, oklch(100% 0.045 88 \/ .72), transparent 24%), linear-gradient(135deg, oklch(100% 0.02 60 \/ .78), oklch(94% 0.06 350 \/ .56)); }\n\t\t.kirby-vg-detail-author-copy { display: grid; gap: 10px; }\n\t\t.kirby-vg-detail-author-copy p { margin: 0; color: oklch(38% 0.08 334); font-weight: 900; }\n\t\t.kirby-vg-detail-author-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }\n\t\t.kirby-vg-detail-author-stats span { min-height: 70px; padding: 12px; border-radius: 20px; color: var(--vg-berry); background: oklch(100% 0.018 45 \/ .72); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .72); font-weight: 900; }\n\t\t.kirby-vg-detail-author-stats b { display: block; font-size: clamp(1.2rem, 3vw, 1.8rem); line-height: 1; }\n\t\t.kirby-vg-comments { display: grid; gap: 9px; padding: 10px; border-top: 1px solid oklch(100% 0 0 \/ .72); background: linear-gradient(180deg, oklch(100% 0.015 42 \/ .88), oklch(94% 0.04 210 \/ .52)); }\n\t\t.kirby-vg-comments.is-detail { margin-bottom: 18px; padding: clamp(16px, 3vw, 24px); border-top: 0; border-radius: 30px; background: linear-gradient(135deg, oklch(100% 0.018 45 \/ .82), oklch(93% 0.055 206 \/ .58)); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .72); }\n\t\t.kirby-vg-comments-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--vg-berry); font-size: .78rem; font-weight: 950; }\n\t\t.kirby-vg-comments.is-detail .kirby-vg-comments-head { font-size: 1rem; }\n\t\t.kirby-vg-comments-head b { display: grid; place-items: center; min-width: 25px; height: 25px; padding: 0 7px; border-radius: 999px; color: var(--vg-berry); background: var(--vg-lemon); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .58); font-size: .78rem; }\n\t\t.kirby-vg-comment-list { display: grid; gap: 8px; }\n\t\t.kirby-vg-comments.is-detail .kirby-vg-comment-list { gap: 12px; }\n\t\t.kirby-vg-comment-empty, .kirby-vg-comment-more { margin: 0; padding: 9px 10px; border-radius: 18px; color: oklch(42% 0.08 334); background: oklch(100% 0.018 45 \/ .66); font-size: .76rem; font-weight: 900; line-height: 1.45; }\n\t\t.kirby-vg-comment-bubble { position: relative; display: grid; gap: 7px; padding: 10px; border: 1px solid oklch(100% 0 0 \/ .76); border-radius: 22px 24px 24px 14px; color: var(--vg-berry); background: radial-gradient(circle at 18% 18%, oklch(100% 0.02 40 \/ .95), transparent 30%), linear-gradient(145deg, oklch(100% 0.018 45 \/ .92), oklch(93% 0.045 210 \/ .76)); box-shadow: 0 10px 20px oklch(50% 0.12 335 \/ .1); }\n\t\t.kirby-vg-comments.is-detail .kirby-vg-comment-bubble { padding: 13px; border-radius: 24px 28px 28px 16px; }\n\t\t.kirby-vg-comment-bubble::after { content: \"\"; position: absolute; left: 15px; bottom: -5px; width: 12px; height: 12px; border-radius: 50% 0 50% 50%; background: oklch(93% 0.045 210 \/ .82); transform: rotate(-28deg); box-shadow: 0 5px 10px oklch(50% 0.12 335 \/ .08); }\n\t\t.kirby-vg-comment-bubble .kirby-vg-id-card { gap: 7px; min-width: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; transform: none; }\n\t\t.kirby-vg-comment-bubble .kirby-vg-avatar { width: 34px; height: 34px; box-shadow: 0 0 0 4px oklch(100% 0.02 30 \/ .75), 0 8px 14px oklch(51% 0.13 340 \/ .13); font-size: .95rem; }\n\t\t.kirby-vg-comment-bubble .kirby-vg-avatar .kirby-vg-sticker { right: -5px; bottom: -4px; width: 18px; height: 18px; border-radius: 7px; }\n\t\t.kirby-vg-comment-bubble .kirby-vg-id-copy strong { max-width: 118px; font-size: .78rem; }\n\t\t.kirby-vg-comment-bubble .kirby-vg-id-copy em { max-width: 118px; overflow: hidden; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }\n\t\t.kirby-vg-comments.is-detail .kirby-vg-comment-bubble .kirby-vg-id-copy strong, .kirby-vg-comments.is-detail .kirby-vg-comment-bubble .kirby-vg-id-copy em { max-width: none; }\n\t\t.kirby-vg-comment-bubble p { margin: 0; color: oklch(36% 0.08 334); font-size: .8rem; font-weight: 900; line-height: 1.55; overflow-wrap: anywhere; }\n\t\t.kirby-vg-comments.is-detail .kirby-vg-comment-bubble p { font-size: .92rem; }\n\t\t.kirby-vg-comment-bubble time { color: oklch(50% 0.08 334 \/ .82); font-size: .68rem; font-weight: 950; }\n\t\t.kirby-vg-comment-form { display: grid; gap: 7px; margin: 0; }\n\t\t.kirby-vg-comment-form textarea { box-sizing: border-box; width: 100%; min-height: 58px; max-height: 104px; padding: 10px 12px; border: 0; border-radius: 20px; color: var(--vg-berry); background: oklch(100% 0.015 40 \/ .9); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .88), inset 0 -4px 0 oklch(83% 0.13 356 \/ .12); font: 900 .78rem\/1.45 \"Microsoft YaHei UI\", \"PingFang SC\", sans-serif; resize: vertical; outline: none; }\n\t\t.kirby-vg-comment-form textarea:focus { box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .9), 0 0 0 4px oklch(83% 0.13 356 \/ .18); }\n\t\t.kirby-vg-comment-form button { justify-self: end; min-height: 32px !important; width: auto !important; min-width: 64px !important; padding: 7px 12px !important; border-radius: 999px !important; box-shadow: none !important; font-size: .78rem !important; }\n\t\t.kirby-vg-comment-status { min-height: 20px; margin: 0; color: var(--vg-berry); font-size: .78rem; font-weight: 950; line-height: 1.4; }\n\t\t.kirby-vg-comment-bubble.is-new { animation: kirbyVgCommentPop .42s ease-out both; }\n\t\t.kirby-vg-profile-hero { display: grid; grid-template-columns: 1fr auto; gap: 16px; align-items: center; margin-bottom: 18px; background: linear-gradient(135deg, oklch(100% 0.02 70 \/ .84), oklch(93% 0.06 350 \/ .76)); }\n\t\t.kirby-vg-profile-name { color: var(--vg-berry); font-size: clamp(2rem, 5vw, 3.8rem); line-height: 1; font-family: \"Comic Sans MS\", \"YouYuan\", \"Microsoft YaHei UI\", sans-serif; font-weight: 950; }\n\t\t.kirby-vg-achievements-card { margin-bottom: 18px; padding: 18px; border-radius: 28px; background: linear-gradient(135deg, oklch(100% 0.02 60 \/ .74), oklch(94% 0.06 350 \/ .56)); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .7); }\n\t\t.kirby-vg-achievements-card.is-compact { padding: 0; margin: 14px 0 0; background: transparent; box-shadow: none; }\n\t\t.kirby-vg-achievements-head { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }\n\t\t.kirby-vg-achievements-head h2 { margin: 0; color: var(--vg-berry); font-size: clamp(1.22rem, 3vw, 1.9rem); }\n\t\t.kirby-vg-achievements-head p:not(.kirby-vg-kicker) { max-width: 620px; margin: 6px 0 0; color: oklch(39% 0.09 334); font-weight: 900; line-height: 1.7; }\n\t\t.kirby-vg-achievements-head b { display: grid; place-items: center; min-width: 108px; min-height: 68px; padding: 10px 14px; border-radius: 22px; color: var(--vg-berry); background: linear-gradient(145deg, var(--vg-lemon), oklch(98% 0.055 350 \/ .84)); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .72); font-size: 1.18rem; font-weight: 950; text-align: center; }\n\t\t.kirby-vg-achievements-head b strong { font: inherit; line-height: 1; }\n\t\t.kirby-vg-achievements-head b span { display: block; margin-top: 2px; font-size: .72rem; line-height: 1; }\n\t\t.kirby-vg-achievements-head b i { font-style: normal; }\n\t\t.kirby-vg-achievement-group + .kirby-vg-achievement-group { margin-top: 18px; }\n\t\t.kirby-vg-achievement-group-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 10px; }\n\t\t.kirby-vg-achievement-group-head h3 { margin: 0; color: var(--vg-berry); font-size: 1.05rem; }\n\t\t.kirby-vg-achievement-group-head p { margin: 3px 0 0; color: oklch(42% 0.08 334); font-size: .86rem; font-weight: 900; }\n\t\t.kirby-vg-achievement-rail { overflow-x: auto; overflow-y: hidden; padding-bottom: 8px; scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-x: contain; scrollbar-width: none; }\n\t\t.kirby-vg-achievement-rail::-webkit-scrollbar { display: none; }\n\t\t.kirby-vg-achievement-grid { display: flex; gap: 12px; min-width: 100%; }\n\t\t.kirby-vg-achievement-badge { display: grid; grid-template-rows: auto auto auto 1fr; gap: 10px; flex: 0 0 calc((100% - 36px) \/ 4); min-height: 238px; padding: 14px; border: 1px solid oklch(100% 0 0 \/ .75); border-radius: 24px; background: linear-gradient(145deg, oklch(100% 0.018 45 \/ .72), oklch(96% 0.045 350 \/ .62)); box-shadow: 0 16px 32px oklch(50% 0.12 335 \/ .12); scroll-snap-align: start; scroll-snap-stop: always; transition: transform .22s ease, box-shadow .22s ease, background .22s ease; }\n\t\t.kirby-vg-achievement-badge.is-claimable { background: linear-gradient(145deg, oklch(100% 0.03 88 \/ .9), oklch(96% 0.05 350 \/ .74)); box-shadow: inset 0 0 0 2px var(--vg-lemon), 0 18px 34px oklch(50% 0.12 335 \/ .16); }\n\t\t.kirby-vg-achievement-badge.is-claimed { background: linear-gradient(145deg, oklch(95% 0.045 150 \/ .72), oklch(99% 0.025 88 \/ .76)); }\n\t\t.kirby-vg-achievement-badge.is-just-claimed { animation: kirbyVgAchievementClaim .48s cubic-bezier(.22, 1, .36, 1) both; }\n\t\t.kirby-vg-achievement-badge.is-locked { opacity: .82; }\n\t\t.kirby-vg-achievement-icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 20px; color: var(--vg-berry); background: var(--vg-lemon); box-shadow: 0 12px 22px oklch(52% 0.12 80 \/ .16); font-weight: 950; }\n\t\t.kirby-vg-achievement-copy { display: grid; gap: 6px; align-content: start; }\n\t\t.kirby-vg-achievement-copy strong { color: var(--vg-berry); line-height: 1.2; }\n\t\t.kirby-vg-achievement-copy span { color: oklch(38% 0.08 334); font-size: .88rem; line-height: 1.6; }\n\t\t.kirby-vg-achievement-badge small, .kirby-vg-achievement-foot em, .kirby-vg-achievement-state { color: var(--vg-berry); font-size: .8rem; font-style: normal; font-weight: 950; }\n\t\t.kirby-vg-achievement-bar { overflow: hidden; height: 7px; border-radius: 999px; background: oklch(100% 0 0 \/ .64); }\n\t\t.kirby-vg-achievement-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--vg-pink), var(--vg-lemon)); }\n\t\t.kirby-vg-achievement-foot { display: grid; gap: 8px; align-self: end; }\n\t\t.kirby-vg-achievement-foot form { margin: 0; }\n\t\t.kirby-vg-achievement-foot button { width: 100%; min-height: 40px !important; padding: 8px 12px !important; box-shadow: none !important; }\n\t\t.kirby-vg-achievement-foot button[disabled] { color: var(--vg-berry) !important; background: oklch(100% 0.018 45 \/ .76) !important; }\n\t\t.kirby-vg-achievement-state { display: grid; place-items: center; min-height: 36px; border-radius: 999px; background: oklch(100% 0.02 45 \/ .76); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .72); }\n\t\t.kirby-vg-achievement-more { height: 0; margin-top: 0; opacity: 0; overflow: hidden; transform: translateY(-4px); transition: height .32s cubic-bezier(.22, 1, .36, 1), margin-top .32s cubic-bezier(.22, 1, .36, 1), opacity .18s ease, transform .26s cubic-bezier(.22, 1, .36, 1); will-change: height, opacity, transform; }\n\t\t.kirby-vg-achievement-more-inner { min-height: 0; overflow: visible; }\n\t\t.kirby-vg-achievement-more.is-open { margin-top: 18px; opacity: 1; transform: translateY(0); }\n\t\t.kirby-vg-achievement-actions { display: flex; justify-content: flex-end; margin-top: 14px; }\n\t\t.kirby-vg-achievement-more-toggle { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 8px; box-sizing: border-box; min-height: 42px !important; width: auto !important; max-width: 100%; padding: 9px 43px 9px 15px !important; border: 1px solid oklch(100% 0 0 \/ .76) !important; border-radius: 999px !important; color: var(--vg-berry) !important; background: linear-gradient(145deg, oklch(100% 0.022 42 \/ .94), oklch(97% 0.05 350 \/ .88)) !important; box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .52), 0 12px 22px oklch(50% 0.12 335 \/ .12) !important; font-size: .86rem !important; line-height: 1 !important; white-space: nowrap; transition: transform .22s ease, box-shadow .22s ease, background .22s ease; }\n\t\t.kirby-vg-achievement-more-toggle:hover { transform: translateY(-2px); box-shadow: inset 0 0 0 1px oklch(100% 0 0 \/ .9), 0 18px 34px oklch(50% 0.12 335 \/ .18) !important; }\n\t\t.kirby-vg-achievement-more-toggle span { display: inline-block; font-weight: 950; }\n\t\t.kirby-vg-achievement-more-toggle small { display: inline-flex; align-items: center; justify-content: center; min-height: 22px; padding: 4px 8px; border-radius: 999px; color: oklch(38% 0.09 334); background: oklch(100% 0.02 70 \/ .72); font-size: .72rem; font-weight: 950; line-height: 1; }\n\t\t.kirby-vg-achievement-more-toggle::after { content: \"\u2304\"; position: absolute; right: 12px; top: 50%; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 999px; color: oklch(99% 0.01 20); background: var(--vg-pink); box-shadow: 0 8px 14px oklch(50% 0.12 335 \/ .18); transform: translateY(-50%); transition: transform .24s ease; }\n\t\t.kirby-vg-achievements-card.is-more-open .kirby-vg-achievement-more-toggle::after { transform: translateY(-50%) rotate(180deg); }\n\t\t.kirby-vg-achievement-more-toggle.has-alert::before { content: \"\"; position: absolute; top: -3px; right: 7px; width: 10px; height: 10px; border-radius: 999px; background: oklch(62% 0.22 27); box-shadow: 0 0 0 3px oklch(100% 0.02 35 \/ .92), 0 8px 14px oklch(50% 0.2 27 \/ .24); }\n\t\t.kirby-vg-star-pop { position: fixed; z-index: 100000; pointer-events: none; color: oklch(91% 0.16 89); font-size: 22px; animation: kirbyVgStarPop .8s ease-out forwards; text-shadow: 0 4px 10px oklch(40% 0.12 80 \/ .24); }\n\t\t.kirby-vg-empty { padding: 20px; border-radius: 24px; background: oklch(99% 0.02 80 \/ .72); color: var(--vg-berry); font-weight: 900; }\n\t\t.kirby-vg-locked { display: grid; gap: 18px; grid-template-columns: .8fr 1.2fr; align-items: stretch; }\n\t\t.kirby-vg-lock-card { position: relative; min-height: 100%; overflow: hidden; background: linear-gradient(135deg, oklch(100% 0.02 70 \/ .84), oklch(93% 0.06 350 \/ .76)); }\n\t\t.kirby-vg-lock-card::after { content: \"\"; position: absolute; width: 190px; height: 190px; right: -42px; bottom: -48px; border-radius: 48% 52% 56% 44%; background: radial-gradient(circle at 38% 34%, oklch(100% 0.02 40 \/ .92) 0 8%, transparent 9%), var(--vg-pink); box-shadow: -54px -18px 0 -22px oklch(100% 0.015 30 \/ .7); }\n\t\t.kirby-vg-dropzone { position: relative; place-items: center; min-height: 180px; padding: 18px; border: 2px dashed oklch(73% 0.13 354); border-radius: 26px; text-align: center; background: linear-gradient(135deg, oklch(100% 0.02 70 \/ .74), oklch(94% 0.06 203 \/ .62)); cursor: pointer; transition: transform .2s ease, border-color .2s ease, background .2s ease; }\n\t\t.kirby-vg-dropzone.is-dragging { transform: scale(.99); border-color: var(--vg-berry); background: oklch(96% 0.07 88 \/ .78); }\n\t\t.kirby-vg-dropzone.has-preview { border-width: 8px; border-style: solid; border-color: oklch(91% 0.16 89); background: oklch(100% 0.018 44 \/ .78); box-shadow: 0 18px 34px oklch(50% 0.12 335 \/ .16); }\n\t\t.kirby-vg-dropzone.has-preview::after { content: \"\u2605\"; position: absolute; top: 12px; right: 12px; z-index: 2; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 999px; color: var(--vg-berry); background: oklch(91% 0.16 89); font-weight: 950; pointer-events: none; }\n\t\t.kirby-vg-dropzone.has-preview.kirby-vg-preview-frame-cloud { border-style: dashed; border-color: oklch(91% 0.08 210); border-radius: 34px 22px 34px 22px; background: oklch(95% 0.04 210 \/ .7); }\n\t\t.kirby-vg-dropzone.has-preview.kirby-vg-preview-frame-cloud::after { content: \"\u2601\"; background: oklch(91% 0.08 210); }\n\t\t.kirby-vg-dropzone.has-preview.kirby-vg-preview-frame-candy { border-color: oklch(91% 0.15 88); background: repeating-linear-gradient(135deg, oklch(100% 0.02 40 \/ .82), oklch(100% 0.02 40 \/ .82) 10px, oklch(96% 0.08 352 \/ .72) 10px, oklch(96% 0.08 352 \/ .72) 20px); }\n\t\t.kirby-vg-dropzone.has-preview.kirby-vg-preview-frame-candy::after { content: \"\u25c6\"; background: oklch(91% 0.15 88); }\n\t\t.kirby-vg-dropzone input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }\n\t\t.kirby-vg-preview { width: min(220px, 86%); aspect-ratio: 1.2; object-fit: cover; border: 8px solid oklch(100% 0 0 \/ .78); border-radius: 22px; box-shadow: 0 18px 34px oklch(50% 0.12 335 \/ .16); }\n\t\t.kirby-vg-lightbox { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; padding: 22px; background: oklch(21% 0.07 330 \/ .72); backdrop-filter: blur(14px); }\n\t\t.kirby-vg-lightbox[aria-hidden=\"true\"] { display: none; }\n\t\t.kirby-vg-lightbox-card { width: min(880px, 100%); padding: 12px; border-radius: 30px; background: oklch(100% 0.015 40 \/ .94); box-shadow: 0 30px 90px oklch(18% 0.08 330 \/ .4); }\n\t\t.kirby-vg-lightbox img { width: 100%; max-height: 72vh; object-fit: contain; display: block; border-radius: 22px; background: oklch(96% 0.02 40); }\n\t\t.kirby-vg-lightbox-bar { display: flex; gap: 12px; align-items: center; justify-content: space-between; padding: 10px 4px 0; color: var(--vg-berry); font-weight: 950; }\n\t\t.kirby-vg-lightbox-close { min-height: 40px !important; padding: 8px 14px !important; box-shadow: none !important; }\n\t\t@keyframes kirbyVgFloat { 0%, 100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-14px) rotate(5deg); } }\n\t\t@keyframes kirbyVgPulse { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-7px) scale(1.04); } }\n\t\t@keyframes kirbyVgSpin { to { transform: rotate(360deg); } }\n\t\t@keyframes kirbyVgStarPop { 0% { opacity: 0; transform: translate(-50%, -20%) scale(.4) rotate(-20deg); } 35% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, -150%) scale(1.3) rotate(18deg); } }\n\t\t@keyframes kirbyVgCommentPop { 0% { opacity: 0; transform: translateY(10px) scale(.96); } 100% { opacity: 1; transform: translateY(0) scale(1); } }\n\t\t@keyframes kirbyVgAchievementClaim { 0% { transform: translateY(0) scale(1); } 42% { transform: translateY(-4px) scale(1.015); } 100% { transform: translateY(0) scale(1); } }\n\t\t@media (max-width: 1100px) { .kirby-vg-mood-options { grid-template-columns: repeat(3, minmax(0, 1fr)); } .kirby-vg-mood-calendar { grid-template-columns: repeat(4, minmax(0, 1fr)); } }\n\t\t@media (max-width: 980px) { .kirby-vg-decoration-card, .kirby-vg-achievement-badge { flex-basis: calc((100% - 12px) \/ 2); } }\n\t\t@media (max-width: 840px) { .kirby-vg-hero, .kirby-vg-grid, .kirby-vg-auth-grid, .kirby-vg-locked, .kirby-vg-stats, .kirby-vg-profile-hero, .kirby-vg-checkin-card, .kirby-vg-pomodoro-card, .kirby-vg-mood-card, .kirby-vg-detail-layout { grid-template-columns: 1fr; } .kirby-vg-orbit { min-height: 190px; } .kirby-vg-tabs { width: 100%; border-radius: 24px; } .kirby-vg-tab { flex: 1; } .kirby-vg-shop-head, .kirby-vg-achievements-head, .kirby-vg-mood-calendar-head { flex-direction: column; align-items: flex-start; } .kirby-vg-shop-group-head, .kirby-vg-achievement-group-head { flex-direction: column; align-items: flex-start; } .kirby-vg-shop-scroll-controls { width: 100%; } .kirby-vg-wallet { width: 100%; } }\n\t\t@media (max-width: 620px) { .kirby-vg-checkin-meta, .kirby-vg-pomodoro-stats, .kirby-vg-mood-options, .kirby-vg-detail-author-stats { grid-template-columns: 1fr; } .kirby-vg-mood-calendar { grid-template-columns: repeat(2, minmax(0, 1fr)); } .kirby-vg-decoration-card, .kirby-vg-achievement-badge { flex-basis: 86%; } .kirby-vg-achievement-actions { justify-content: stretch; } .kirby-vg-achievement-more-toggle { width: 100% !important; } .kirby-vg-id-card { border-radius: 28px; } .kirby-vg-pomodoro-actions { grid-template-columns: 1fr; } }\n\t\t@media (max-width: 520px) { .kirby-vg { padding-inline: 14px; } .kirby-vg-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; } .kirby-vg-item { max-width: none; } .kirby-vg-caption { align-items: flex-start; flex-direction: column; } }\n\t\t@media (prefers-reduced-motion: reduce) { .kirby-vg *, .kirby-vg *::before, .kirby-vg *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; } }\n\t<\/style>\n\t<div class=\"kirby-vg\" data-kirby-vg>\n\t\t<div class=\"kirby-vg-shell\">\n\t\t\t<section class=\"kirby-vg-hero\">\n\t\t\t\t<div>\n\t\t\t\t\t<p class=\"kirby-vg-kicker\">Dreamland Pomodoro<\/p>\n\t\t\t\t\t<h1>\u5361\u6bd4\u756a\u8304\u949f<\/h1>\n\t\t\t\t\t<p class=\"kirby-vg-lede\">\u628a\u4e13\u6ce8\u65f6\u95f4\u8c03\u6210\u8f6f\u4e4e\u4e4e\u7684\u8282\u594f\uff0c\u5b8c\u6210 30 \u5206\u949f\u540e\u9886\u53d6 1 \u9897\u661f\u661f\u79ef\u5206\uff0c\u518d\u53bb\u661f\u661f\u5c0f\u94fa\u6362\u88c5\u9970\u3002<\/p>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"kirby-vg-orbit\" aria-hidden=\"true\">\n\t\t\t\t\t<span class=\"kirby-vg-star s1\"><\/span>\n\t\t\t\t\t<span class=\"kirby-vg-star s2\"><\/span>\n\t\t\t\t<\/div>\n\t\t\t<\/section>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"kirby-vg-locked\">\n\t\t\t\t\t\t<div class=\"kirby-vg-card kirby-vg-lock-card\">\n\t\t\t\t\t\t\t<h2>\u5148\u767b\u5f55\u518d\u5f00\u542f\u4e13\u6ce8<\/h2>\n\t\t\t\t\t\t\t<p>\u756a\u8304\u949f\u4f1a\u628a\u5b8c\u6210\u8bb0\u5f55\u5b58\u8fdb\u4f60\u7684\u8bbf\u5ba2\u8d26\u53f7\u91cc\u3002\u767b\u5f55\u6216\u6ce8\u518c\u540e\uff0c\u6bcf\u5b8c\u6210 30 \u5206\u949f\u4e13\u6ce8\u5c31\u80fd\u9886\u53d6 1 \u9897\u661f\u661f\u79ef\u5206\u3002<\/p>\n\t\t\t\t\t\t\t<a class=\"kirby-vg-button\" href=\"https:\/\/remandram.top\/index.php\/kirby-gallery\/\">\u53bb\u767b\u5f55\u6216\u6ce8\u518c<\/a>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"kirby-vg-card kirby-vg-lock-card\">\n\t\t\t\t\t\t\t<h2>\u72ec\u7acb\u756a\u8304\u949f\u754c\u9762<\/h2>\n\t\t\t\t\t\t\t<p>\u8fd9\u91cc\u73b0\u5728\u53ea\u4fdd\u7559\u4e13\u6ce8\u5012\u8ba1\u65f6\u548c\u9886\u5956\u72b6\u6001\uff0c\u4e0d\u4f1a\u518d\u548c\u8bbf\u5ba2\u753b\u5eca\u7684\u4e0a\u4f20\u3001\u56fe\u7247\u5899\u6df7\u5728\u4e00\u8d77\u3002<\/p>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t<\/div>\n\t<script>\n\t\t(function () {\n\t\t\tvar root = document.querySelector('[data-kirby-vg]');\n\t\t\tif (!root) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\troot.querySelectorAll('[data-kirby-tab]').forEach(function (tab) {\n\t\t\t\ttab.addEventListener('click', function () {\n\t\t\t\t\tvar target = tab.getAttribute('data-kirby-tab');\n\t\t\t\t\troot.querySelectorAll('[data-kirby-tab]').forEach(function (item) {\n\t\t\t\t\t\titem.setAttribute('aria-selected', item === tab ? 'true' : 'false');\n\t\t\t\t\t});\n\t\t\t\t\troot.querySelectorAll('[data-kirby-panel]').forEach(function (panel) {\n\t\t\t\t\t\tpanel.hidden = panel.getAttribute('data-kirby-panel') !== target;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t\troot.querySelectorAll('[data-kirby-auth-tab]').forEach(function (tab) {\n\t\t\t\ttab.addEventListener('click', function () {\n\t\t\t\t\tvar target = tab.getAttribute('data-kirby-auth-tab');\n\t\t\t\t\troot.querySelectorAll('[data-kirby-auth-tab]').forEach(function (item) {\n\t\t\t\t\t\titem.setAttribute('aria-selected', item === tab ? 'true' : 'false');\n\t\t\t\t\t});\n\t\t\t\t\troot.querySelectorAll('[data-kirby-auth-panel]').forEach(function (panel) {\n\t\t\t\t\t\tpanel.hidden = panel.getAttribute('data-kirby-auth-panel') !== target;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tvar dropzone = root.querySelector('.kirby-vg-dropzone');\n\t\t\tvar fileInput = root.querySelector('.kirby-vg-file');\n\t\t\tvar preview = root.querySelector('.kirby-vg-preview');\n\t\t\tvar frameInputs = root.querySelectorAll('input[name=\"kirby_vg_frame\"]');\n\t\t\tvar updatePreviewFrame = function () {\n\t\t\t\tif (!dropzone) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar frame = 'star';\n\t\t\t\tframeInputs.forEach(function (input) {\n\t\t\t\t\tif (input.checked) {\n\t\t\t\t\t\tframe = input.value || 'star';\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tdropzone.classList.remove('kirby-vg-preview-frame-star', 'kirby-vg-preview-frame-cloud', 'kirby-vg-preview-frame-candy');\n\t\t\t\tdropzone.classList.add('kirby-vg-preview-frame-' + frame);\n\t\t\t};\n\t\t\tframeInputs.forEach(function (input) {\n\t\t\t\tinput.addEventListener('change', updatePreviewFrame);\n\t\t\t});\n\t\t\tupdatePreviewFrame();\n\t\t\tif (dropzone && fileInput && preview) {\n\t\t\t\t['dragenter', 'dragover'].forEach(function (eventName) {\n\t\t\t\t\tdropzone.addEventListener(eventName, function (event) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tdropzone.classList.add('is-dragging');\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tdropzone.addEventListener('dragleave', function () {\n\t\t\t\t\tdropzone.classList.remove('is-dragging');\n\t\t\t\t});\n\t\t\t\tdropzone.addEventListener('drop', function (event) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tdropzone.classList.remove('is-dragging');\n\t\t\t\t\tif (event.dataTransfer && event.dataTransfer.files && event.dataTransfer.files.length) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tfileInput.files = event.dataTransfer.files;\n\t\t\t\t\t\t\tfileInput.dispatchEvent(new Event('change', { bubbles: true }));\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tfileInput.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tfileInput.addEventListener('change', function () {\n\t\t\t\t\tvar file = fileInput.files && fileInput.files[0];\n\t\t\t\t\tif (!file || !file.type || file.type.indexOf('image\/') !== 0) {\n\t\t\t\t\t\tpreview.hidden = true;\n\t\t\t\t\t\tpreview.removeAttribute('src');\n\t\t\t\t\t\tdropzone.classList.remove('has-preview');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tpreview.src = URL.createObjectURL(file);\n\t\t\t\t\tpreview.hidden = false;\n\t\t\t\t\tdropzone.classList.add('has-preview');\n\t\t\t\t\tupdatePreviewFrame();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tvar pomodoro = root.querySelector('[data-kirby-pomodoro]');\n\t\t\tif (pomodoro) {\n\t\t\t\tvar display = pomodoro.querySelector('[data-kirby-pomodoro-display]');\n\t\t\t\tvar minutesInput = pomodoro.querySelector('[data-kirby-pomodoro-minutes]');\n\t\t\t\tvar startButton = pomodoro.querySelector('[data-kirby-pomodoro-start]');\n\t\t\t\tvar pauseButton = pomodoro.querySelector('[data-kirby-pomodoro-pause]');\n\t\t\t\tvar resetButton = pomodoro.querySelector('[data-kirby-pomodoro-reset]');\n\t\t\t\tvar claimButton = pomodoro.querySelector('[data-kirby-pomodoro-claim]');\n\t\t\t\tvar claimForm = pomodoro.querySelector('.kirby-vg-pomodoro-claim');\n\t\t\t\tvar startedAtInput = pomodoro.querySelector('[data-kirby-pomodoro-started-at]');\n\t\t\t\tvar endedAtInput = pomodoro.querySelector('[data-kirby-pomodoro-ended-at]');\n\t\t\t\tvar durationInput = pomodoro.querySelector('[data-kirby-pomodoro-duration]');\n\t\t\t\tvar status = pomodoro.querySelector('[data-kirby-pomodoro-status]');\n\t\t\t\tvar cooldownLabel = pomodoro.querySelector('[data-kirby-pomodoro-cooldown]');\n\t\t\t\tvar cooldown = Math.max(0, parseInt(pomodoro.getAttribute('data-cooldown') || '0', 10));\n\t\t\t\tvar lastClaimAt = Math.max(0, parseInt(pomodoro.getAttribute('data-last-claim') || '0', 10)) * 1000;\n\t\t\t\tvar minimumClaimSeconds = 30 * 60;\n\t\t\t\tvar storageKey = 'kirbyVgPomodoro:' + window.location.pathname;\n\t\t\t\tvar duration = 30 * 60;\n\t\t\t\tvar remaining = duration;\n\t\t\t\tvar running = false;\n\t\t\t\tvar completed = false;\n\t\t\t\tvar completedAt = 0;\n\t\t\t\tvar endAt = 0;\n\t\t\t\tvar sessionStartedAt = 0;\n\t\t\t\tvar sessionEndedAt = 0;\n\t\t\t\tvar timerId = null;\n\n\t\t\t\tvar formatTime = function (seconds) {\n\t\t\t\t\tseconds = Math.max(0, Math.ceil(seconds || 0));\n\t\t\t\t\tvar minutes = Math.floor(seconds \/ 60);\n\t\t\t\t\tvar rest = seconds % 60;\n\t\t\t\t\treturn String(minutes).padStart(2, '0') + ':' + String(rest).padStart(2, '0');\n\t\t\t\t};\n\t\t\t\tvar clampMinutes = function (value) {\n\t\t\t\t\tvalue = parseInt(value || '30', 10);\n\t\t\t\t\tif (!Number.isFinite(value)) {\n\t\t\t\t\t\tvalue = 30;\n\t\t\t\t\t}\n\t\t\t\t\treturn Math.min(180, Math.max(30, value));\n\t\t\t\t};\n\t\t\t\tvar getRewardPoints = function () {\n\t\t\t\t\treturn Math.max(1, Math.floor(duration \/ minimumClaimSeconds));\n\t\t\t\t};\n\t\t\t\tvar syncClaimFields = function () {\n\t\t\t\t\tif (startedAtInput) {\n\t\t\t\t\t\tstartedAtInput.value = sessionStartedAt ? String(Math.floor(sessionStartedAt \/ 1000)) : '';\n\t\t\t\t\t}\n\t\t\t\t\tif (endedAtInput) {\n\t\t\t\t\t\tendedAtInput.value = sessionEndedAt ? String(Math.floor(sessionEndedAt \/ 1000)) : '';\n\t\t\t\t\t}\n\t\t\t\t\tif (durationInput) {\n\t\t\t\t\t\tdurationInput.value = String(Math.max(minimumClaimSeconds, duration));\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tvar saveState = function () {\n\t\t\t\t\ttry {\n\t\t\t\t\t\twindow.localStorage.setItem(storageKey, JSON.stringify({\n\t\t\t\t\t\t\tduration: duration,\n\t\t\t\t\t\t\tremaining: remaining,\n\t\t\t\t\t\t\trunning: running,\n\t\t\t\t\t\t\tcompleted: completed,\n\t\t\t\t\t\t\tcompletedAt: completedAt,\n\t\t\t\t\t\t\tendAt: endAt,\n\t\t\t\t\t\t\tsessionStartedAt: sessionStartedAt,\n\t\t\t\t\t\t\tsessionEndedAt: sessionEndedAt\n\t\t\t\t\t\t}));\n\t\t\t\t\t} catch (error) {}\n\t\t\t\t\tsyncClaimFields();\n\t\t\t\t};\n\t\t\t\tvar updateClaimButton = function () {\n\t\t\t\t\tvar cooldownReady = cooldown <= 0;\n\t\t\t\t\tvar timerReady = completed && duration >= minimumClaimSeconds;\n\t\t\t\t\tif (cooldownLabel) {\n\t\t\t\t\t\tif (!cooldownReady) {\n\t\t\t\t\t\t\tcooldownLabel.textContent = formatTime(cooldown);\n\t\t\t\t\t\t} else if (timerReady) {\n\t\t\t\t\t\t\tcooldownLabel.textContent = '\u53ef\u9886\u53d6';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcooldownLabel.textContent = '\u5f85\u5b8c\u6210';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!claimButton) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tclaimButton.disabled = !(cooldownReady && timerReady);\n\t\t\t\t\tif (!cooldownReady) {\n\t\t\t\t\t\tclaimButton.textContent = '\u9886\u5956\u51b7\u5374\u4e2d ' + formatTime(cooldown);\n\t\t\t\t\t} else if (timerReady) {\n\t\t\t\t\t\tclaimButton.textContent = '\u9886\u53d6 ' + getRewardPoints() + ' \u9897\u661f\u661f';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclaimButton.textContent = '\u5b8c\u6210 30 \u5206\u949f\u540e\u9886\u53d6\u661f\u661f';\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tvar renderTimer = function () {\n\t\t\t\t\tif (display) {\n\t\t\t\t\t\tdisplay.textContent = formatTime(remaining);\n\t\t\t\t\t}\n\t\t\t\t\tupdateClaimButton();\n\t\t\t\t};\n\t\t\t\tvar stopTicker = function () {\n\t\t\t\t\tif (timerId) {\n\t\t\t\t\t\twindow.clearInterval(timerId);\n\t\t\t\t\t\ttimerId = null;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tvar finishTimer = function () {\n\t\t\t\t\trunning = false;\n\t\t\t\t\tcompleted = true;\n\t\t\t\t\tcompletedAt = Date.now();\n\t\t\t\t\tsessionEndedAt = completedAt;\n\t\t\t\t\tremaining = 0;\n\t\t\t\t\tendAt = 0;\n\t\t\t\t\tstopTicker();\n\t\t\t\t\tif (status) {\n\t\t\t\t\t\tstatus.textContent = '\u4e13\u6ce8\u5b8c\u6210\uff0c\u53ef\u4ee5\u9886\u53d6 ' + getRewardPoints() + ' \u9897\u661f\u661f\u5566\u3002';\n\t\t\t\t\t}\n\t\t\t\t\tsaveState();\n\t\t\t\t\trenderTimer();\n\t\t\t\t};\n\t\t\t\tvar tick = function () {\n\t\t\t\t\tif (!running) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tremaining = Math.max(0, Math.ceil((endAt - Date.now()) \/ 1000));\n\t\t\t\t\tif (remaining <= 0) {\n\t\t\t\t\t\tfinishTimer();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tsaveState();\n\t\t\t\t\trenderTimer();\n\t\t\t\t};\n\t\t\t\tvar startTicker = function () {\n\t\t\t\t\tstopTicker();\n\t\t\t\t\ttimerId = window.setInterval(tick, 1000);\n\t\t\t\t\ttick();\n\t\t\t\t};\n\t\t\t\tvar loadState = function () {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar raw = window.localStorage.getItem(storageKey);\n\t\t\t\t\t\tif (!raw) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar state = JSON.parse(raw);\n\t\t\t\t\t\tduration = Math.max(minimumClaimSeconds, parseInt(state.duration || duration, 10));\n\t\t\t\t\t\tremaining = Math.max(0, parseInt(state.remaining || duration, 10));\n\t\t\t\t\t\tcompleted = !!state.completed;\n\t\t\t\t\t\tcompletedAt = parseInt(state.completedAt || '0', 10);\n\t\t\t\t\t\tsessionStartedAt = parseInt(state.sessionStartedAt || '0', 10);\n\t\t\t\t\t\tsessionEndedAt = parseInt(state.sessionEndedAt || '0', 10);\n\t\t\t\t\t\tif (completed && lastClaimAt && completedAt && completedAt <= lastClaimAt) {\n\t\t\t\t\t\t\tcompleted = false;\n\t\t\t\t\t\t\tcompletedAt = 0;\n\t\t\t\t\t\t\tsessionStartedAt = 0;\n\t\t\t\t\t\t\tsessionEndedAt = 0;\n\t\t\t\t\t\t\tremaining = duration;\n\t\t\t\t\t\t}\n\t\t\t\t\t\trunning = !!state.running;\n\t\t\t\t\t\tendAt = parseInt(state.endAt || '0', 10);\n\t\t\t\t\t\tif (minutesInput) {\n\t\t\t\t\t\t\tminutesInput.value = Math.round(duration \/ 60);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (running && endAt > Date.now()) {\n\t\t\t\t\t\t\tremaining = Math.max(0, Math.ceil((endAt - Date.now()) \/ 1000));\n\t\t\t\t\t\t\tstartTicker();\n\t\t\t\t\t\t} else if (running && endAt <= Date.now()) {\n\t\t\t\t\t\t\tfinishTimer();\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (error) {}\n\t\t\t\t};\n\n\t\t\t\tif (minutesInput) {\n\t\t\t\t\tduration = clampMinutes(minutesInput.value) * 60;\n\t\t\t\t\tremaining = duration;\n\t\t\t\t\tminutesInput.addEventListener('change', function () {\n\t\t\t\t\t\tif (running) {\n\t\t\t\t\t\t\tminutesInput.value = Math.round(duration \/ 60);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar minutes = clampMinutes(minutesInput.value);\n\t\t\t\t\t\tminutesInput.value = minutes;\n\t\t\t\t\t\tduration = minutes * 60;\n\t\t\t\t\t\tremaining = duration;\n\t\t\t\t\t\tcompleted = false;\n\t\t\t\t\t\tcompletedAt = 0;\n\t\t\t\t\t\tsessionStartedAt = 0;\n\t\t\t\t\t\tsessionEndedAt = 0;\n\t\t\t\t\t\tif (status) {\n\t\t\t\t\t\t\tstatus.textContent = '\u5df2\u8bbe\u7f6e ' + minutes + ' \u5206\u949f\u4e13\u6ce8\u65f6\u95f4\u3002';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsaveState();\n\t\t\t\t\t\trenderTimer();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (startButton) {\n\t\t\t\t\tstartButton.addEventListener('click', function () {\n\t\t\t\t\t\tif (running) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (remaining <= 0) {\n\t\t\t\t\t\t\tremaining = duration;\n\t\t\t\t\t\t\tcompleted = false;\n\t\t\t\t\t\t\tcompletedAt = 0;\n\t\t\t\t\t\t\tsessionStartedAt = 0;\n\t\t\t\t\t\t\tsessionEndedAt = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\trunning = true;\n\t\t\t\t\t\tcompleted = false;\n\t\t\t\t\t\tcompletedAt = 0;\n\t\t\t\t\t\tsessionEndedAt = 0;\n\t\t\t\t\t\tif (!sessionStartedAt) {\n\t\t\t\t\t\t\tsessionStartedAt = Date.now();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tendAt = Date.now() + remaining * 1000;\n\t\t\t\t\t\tif (status) {\n\t\t\t\t\t\t\tstatus.textContent = '\u756a\u8304\u949f\u5f00\u59cb\uff0c\u5361\u6bd4\u966a\u4f60\u4e13\u6ce8\u3002';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsaveState();\n\t\t\t\t\t\tstartTicker();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (pauseButton) {\n\t\t\t\t\tpauseButton.addEventListener('click', function () {\n\t\t\t\t\t\tif (!running) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\trunning = false;\n\t\t\t\t\t\tremaining = Math.max(0, Math.ceil((endAt - Date.now()) \/ 1000));\n\t\t\t\t\t\tendAt = 0;\n\t\t\t\t\t\tstopTicker();\n\t\t\t\t\t\tif (status) {\n\t\t\t\t\t\t\tstatus.textContent = '\u5df2\u6682\u505c\uff0c\u51c6\u5907\u597d\u540e\u7ee7\u7eed\u3002';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsaveState();\n\t\t\t\t\t\trenderTimer();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (resetButton) {\n\t\t\t\t\tresetButton.addEventListener('click', function () {\n\t\t\t\t\t\trunning = false;\n\t\t\t\t\t\tcompleted = false;\n\t\t\t\t\t\tcompletedAt = 0;\n\t\t\t\t\t\tendAt = 0;\n\t\t\t\t\t\tsessionStartedAt = 0;\n\t\t\t\t\t\tsessionEndedAt = 0;\n\t\t\t\t\t\tremaining = duration;\n\t\t\t\t\t\tstopTicker();\n\t\t\t\t\t\tif (status) {\n\t\t\t\t\t\t\tstatus.textContent = '\u5df2\u91cd\u7f6e\u756a\u8304\u949f\u3002';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsaveState();\n\t\t\t\t\t\trenderTimer();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (claimForm) {\n\t\t\t\t\tclaimForm.addEventListener('submit', function () {\n\t\t\t\t\t\tif (!sessionEndedAt) {\n\t\t\t\t\t\t\tsessionEndedAt = Date.now();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!sessionStartedAt) {\n\t\t\t\t\t\t\tsessionStartedAt = sessionEndedAt - duration * 1000;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsyncClaimFields();\n\t\t\t\t\t\trunning = false;\n\t\t\t\t\t\tcompleted = false;\n\t\t\t\t\t\tcompletedAt = 0;\n\t\t\t\t\t\tendAt = 0;\n\t\t\t\t\t\tremaining = duration;\n\t\t\t\t\t\tstopTicker();\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\twindow.localStorage.removeItem(storageKey);\n\t\t\t\t\t\t} catch (error) {}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tloadState();\n\t\t\t\trenderTimer();\n\t\t\t\tif (cooldown > 0) {\n\t\t\t\t\twindow.setInterval(function () {\n\t\t\t\t\t\tcooldown = Math.max(0, cooldown - 1);\n\t\t\t\t\t\tupdateClaimButton();\n\t\t\t\t\t}, 1000);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar shopPreview = root.querySelector('[data-kirby-shop-preview]');\n\t\t\tif (shopPreview) {\n\t\t\t\tvar previewCard = shopPreview.querySelector('[data-kirby-preview-card]');\n\t\t\t\tvar previewSticker = shopPreview.querySelector('[data-kirby-preview-sticker]');\n\t\t\t\tvar previewTitle = shopPreview.querySelector('[data-kirby-preview-title]');\n\t\t\t\tvar previewNote = shopPreview.querySelector('[data-kirby-preview-note]');\n\t\t\t\tvar resetPreview = shopPreview.querySelector('[data-kirby-preview-reset]');\n\t\t\t\tvar frameClasses = [];\n\t\t\t\troot.querySelectorAll('[data-kirby-decoration-card]').forEach(function (card) {\n\t\t\t\t\tvar frameClass = card.getAttribute('data-frame-class') || '';\n\t\t\t\t\tif (frameClass && frameClasses.indexOf(frameClass) === -1) {\n\t\t\t\t\t\tframeClasses.push(frameClass);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tvar currentPreview = {\n\t\t\t\t\tframeClass: shopPreview.getAttribute('data-current-frame-class') || '',\n\t\t\t\t\tstickerArt: shopPreview.getAttribute('data-current-sticker-art') || '',\n\t\t\t\t\ttitle: shopPreview.getAttribute('data-current-title') || '\u666e\u901a\u8bbf\u5ba2'\n\t\t\t\t};\n\t\t\t\tvar previewState = {\n\t\t\t\t\tframeClass: currentPreview.frameClass,\n\t\t\t\t\tstickerArt: currentPreview.stickerArt,\n\t\t\t\t\ttitle: currentPreview.title\n\t\t\t\t};\n\n\t\t\t\tvar applyShopPreview = function (label) {\n\t\t\t\t\tif (previewCard) {\n\t\t\t\t\t\tframeClasses.forEach(function (className) {\n\t\t\t\t\t\t\tpreviewCard.classList.remove(className);\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (previewState.frameClass) {\n\t\t\t\t\t\t\tpreviewCard.classList.add(previewState.frameClass);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (previewSticker) {\n\t\t\t\t\t\tpreviewSticker.style.backgroundImage = previewState.stickerArt ? 'url(\"' + previewState.stickerArt + '\")' : '';\n\t\t\t\t\t\tpreviewSticker.hidden = !previewState.stickerArt;\n\t\t\t\t\t}\n\t\t\t\t\tif (previewTitle) {\n\t\t\t\t\t\tpreviewTitle.textContent = previewState.title || '\u666e\u901a\u8bbf\u5ba2';\n\t\t\t\t\t}\n\t\t\t\t\tif (previewNote) {\n\t\t\t\t\t\tpreviewNote.textContent = label ? '\u6b63\u5728\u9884\u89c8\uff1a' + label + '\u3002\u559c\u6b22\u7684\u8bdd\u53ef\u4ee5\u76f4\u63a5\u4f69\u6234\u6216\u89e3\u9501\u3002' : '\u5f53\u524d\u88c5\u626e\u4f1a\u663e\u793a\u5728\u4f60\u7684\u753b\u5eca\u6b22\u8fce\u533a\u548c\u4e2a\u4eba\u4e3b\u9875\u3002\u70b9\u4efb\u610f\u88c5\u9970\u7684\u201c\u9884\u89c8\u4f69\u6234\u201d\uff0c\u8fd9\u91cc\u4f1a\u5148\u8bd5\u7a7f\u6548\u679c\u3002';\n\t\t\t\t\t}\n\t\t\t\t\troot.querySelectorAll('[data-kirby-decoration-card]').forEach(function (card) {\n\t\t\t\t\t\tcard.classList.toggle('is-previewing', !!label && card.getAttribute('data-label') === label);\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\troot.querySelectorAll('[data-kirby-preview-decoration]').forEach(function (button) {\n\t\t\t\t\tbutton.addEventListener('click', function () {\n\t\t\t\t\t\tvar card = button.closest('[data-kirby-decoration-card]');\n\t\t\t\t\t\tif (!card) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar type = card.getAttribute('data-type') || '';\n\t\t\t\t\t\tif ('frame' === type) {\n\t\t\t\t\t\t\tpreviewState.frameClass = card.getAttribute('data-frame-class') || '';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ('sticker' === type) {\n\t\t\t\t\t\t\tpreviewState.stickerArt = card.getAttribute('data-sticker-art') || '';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ('title' === type) {\n\t\t\t\t\t\t\tpreviewState.title = card.getAttribute('data-title') || card.getAttribute('data-label') || '\u666e\u901a\u8bbf\u5ba2';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tapplyShopPreview(card.getAttribute('data-label') || '');\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\tif (resetPreview) {\n\t\t\t\t\tresetPreview.addEventListener('click', function () {\n\t\t\t\t\t\tpreviewState.frameClass = currentPreview.frameClass;\n\t\t\t\t\t\tpreviewState.stickerArt = currentPreview.stickerArt;\n\t\t\t\t\t\tpreviewState.title = currentPreview.title;\n\t\t\t\t\t\tapplyShopPreview('');\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\troot.querySelectorAll('[data-kirby-unequip-form]').forEach(function (form) {\n\t\t\t\t\tform.addEventListener('submit', function (event) {\n\t\t\t\t\t\tif (!form.hasAttribute('data-kirby-unequip-form')) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!window.fetch || !window.FormData) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tvar card = form.closest('[data-kirby-decoration-card]');\n\t\t\t\t\t\tvar button = form.querySelector('button[type=\"submit\"]');\n\t\t\t\t\t\tvar data = new FormData(form);\n\t\t\t\t\t\tdata.set('action', 'kirby_vg_unequip_decoration');\n\n\t\t\t\t\t\tif (button) {\n\t\t\t\t\t\t\tbutton.disabled = true;\n\t\t\t\t\t\t\tbutton.classList.add('is-loading');\n\t\t\t\t\t\t\tbutton.textContent = '\u53d6\u6d88\u4e2d...';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfetch(form.getAttribute('data-ajax'), {\n\t\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\t\tcredentials: 'same-origin',\n\t\t\t\t\t\t\tbody: data\n\t\t\t\t\t\t}).then(function (response) {\n\t\t\t\t\t\t\treturn response.json();\n\t\t\t\t\t\t}).then(function (payload) {\n\t\t\t\t\t\t\tif (!payload || !payload.success || !payload.data) {\n\t\t\t\t\t\t\t\tthrow new Error('unequip_failed');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar type = payload.data.type || (card ? card.getAttribute('data-type') : '');\n\t\t\t\t\t\t\tif ('frame' === type) {\n\t\t\t\t\t\t\t\tcurrentPreview.frameClass = '';\n\t\t\t\t\t\t\t\tpreviewState.frameClass = '';\n\t\t\t\t\t\t\t\tshopPreview.setAttribute('data-current-frame-class', '');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ('sticker' === type) {\n\t\t\t\t\t\t\t\tcurrentPreview.stickerArt = '';\n\t\t\t\t\t\t\t\tpreviewState.stickerArt = '';\n\t\t\t\t\t\t\t\tshopPreview.setAttribute('data-current-sticker-art', '');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ('title' === type) {\n\t\t\t\t\t\t\t\tcurrentPreview.title = payload.data.title || '\u666e\u901a\u8bbf\u5ba2';\n\t\t\t\t\t\t\t\tpreviewState.title = currentPreview.title;\n\t\t\t\t\t\t\t\tshopPreview.setAttribute('data-current-title', currentPreview.title);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (card) {\n\t\t\t\t\t\t\t\tcard.classList.remove('is-equipped', 'is-previewing');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tform.removeAttribute('data-kirby-unequip-form');\n\t\t\t\t\t\t\tform.removeAttribute('data-ajax');\n\t\t\t\t\t\t\tvar actionInput = form.querySelector('input[name=\"kirby_vg_action\"]');\n\t\t\t\t\t\t\tif (actionInput) {\n\t\t\t\t\t\t\t\tactionInput.value = 'equip_decoration';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (button) {\n\t\t\t\t\t\t\t\tbutton.disabled = false;\n\t\t\t\t\t\t\t\tbutton.classList.remove('is-loading', 'kirby-vg-unequip-button');\n\t\t\t\t\t\t\t\tbutton.textContent = '\u4f69\u6234';\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tapplyShopPreview('');\n\t\t\t\t\t\t\tif (previewNote) {\n\t\t\t\t\t\t\t\tpreviewNote.textContent = payload.data.message || '\u5df2\u53d6\u6d88\u4f69\u6234\uff0c\u53ef\u4ee5\u968f\u65f6\u518d\u6362\u56de\u6765\u3002';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).catch(function () {\n\t\t\t\t\t\t\tif (button) {\n\t\t\t\t\t\t\t\tbutton.disabled = false;\n\t\t\t\t\t\t\t\tbutton.classList.remove('is-loading');\n\t\t\t\t\t\t\t\tbutton.textContent = '\u53d6\u6d88\u4f69\u6234';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (previewNote) {\n\t\t\t\t\t\t\t\tpreviewNote.textContent = '\u53d6\u6d88\u4f69\u6234\u6ca1\u6709\u6210\u529f\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\troot.querySelectorAll('[data-kirby-shop-rail]').forEach(function (rail) {\n\t\t\t\tvar group = rail.closest('.kirby-vg-shop-group, .kirby-vg-achievement-group');\n\t\t\t\tvar grid = rail.querySelector('.kirby-vg-decoration-grid, .kirby-vg-achievement-grid');\n\t\t\t\tvar prevButton = group ? group.querySelector('[data-kirby-shop-scroll=\"prev\"]') : null;\n\t\t\t\tvar nextButton = group ? group.querySelector('[data-kirby-shop-scroll=\"next\"]') : null;\n\t\t\t\tvar reduceMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n\t\t\t\tvar getScrollStep = function () {\n\t\t\t\t\tvar card = rail.querySelector('.kirby-vg-decoration-card, .kirby-vg-achievement-badge');\n\t\t\t\t\tif (!card) {\n\t\t\t\t\t\treturn rail.clientWidth || 320;\n\t\t\t\t\t}\n\t\t\t\t\tvar gap = 12;\n\t\t\t\t\tif (grid && window.getComputedStyle) {\n\t\t\t\t\t\tvar gridStyles = window.getComputedStyle(grid);\n\t\t\t\t\t\tgap = parseFloat(gridStyles.columnGap || gridStyles.gap || '12') || 12;\n\t\t\t\t\t}\n\t\t\t\t\treturn card.getBoundingClientRect().width + gap;\n\t\t\t\t};\n\n\t\t\t\tvar updateButtons = function () {\n\t\t\t\t\tif (prevButton) {\n\t\t\t\t\t\tprevButton.disabled = rail.scrollLeft <= 1;\n\t\t\t\t\t}\n\t\t\t\t\tif (nextButton) {\n\t\t\t\t\t\tnextButton.disabled = rail.scrollLeft + rail.clientWidth >= rail.scrollWidth - 1;\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tvar scrollByCard = function (direction) {\n\t\t\t\t\trail.scrollBy({\n\t\t\t\t\t\tleft: direction * getScrollStep(),\n\t\t\t\t\t\tbehavior: reduceMotion ? 'auto' : 'smooth'\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\tif (prevButton) {\n\t\t\t\t\tprevButton.addEventListener('click', function () {\n\t\t\t\t\t\tscrollByCard(-1);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (nextButton) {\n\t\t\t\t\tnextButton.addEventListener('click', function () {\n\t\t\t\t\t\tscrollByCard(1);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\trail.addEventListener('scroll', updateButtons, { passive: true });\n\t\t\t\twindow.addEventListener('resize', updateButtons);\n\t\t\t\tupdateButtons();\n\t\t\t});\n\n\t\t\troot.querySelectorAll('[data-kirby-achievement-toggle]').forEach(function (button) {\n\t\t\t\tbutton.addEventListener('click', function () {\n\t\t\t\t\tvar card = button.closest('[data-kirby-achievement-card]');\n\t\t\t\t\tvar moreId = button.getAttribute('aria-controls');\n\t\t\t\t\tvar more = moreId ? document.getElementById(moreId) : null;\n\t\t\t\t\tvar label = button.querySelector('[data-kirby-achievement-toggle-label]');\n\t\t\t\t\tvar reduceMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n\t\t\t\t\tif (!card || !more) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (button.getAttribute('data-kirby-animating') === 'true') {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar expanded = button.getAttribute('aria-expanded') === 'true';\n\t\t\t\t\tvar opening = !expanded;\n\t\t\t\t\tvar finished = false;\n\n\t\t\t\t\tvar finish = function () {\n\t\t\t\t\t\tif (finished) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfinished = true;\n\t\t\t\t\t\tbutton.removeAttribute('data-kirby-animating');\n\t\t\t\t\t\tif (opening) {\n\t\t\t\t\t\t\tmore.style.height = 'auto';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmore.style.height = '';\n\t\t\t\t\t\t\tmore.setAttribute('inert', '');\n\t\t\t\t\t\t}\n\t\t\t\t\t\twindow.dispatchEvent(new Event('resize'));\n\t\t\t\t\t};\n\n\t\t\t\t\tbutton.setAttribute('data-kirby-animating', 'true');\n\t\t\t\t\tbutton.setAttribute('aria-expanded', expanded ? 'false' : 'true');\n\t\t\t\t\tcard.classList.toggle('is-more-open', opening);\n\t\t\t\t\tmore.setAttribute('aria-hidden', expanded ? 'true' : 'false');\n\n\t\t\t\t\tif (opening) {\n\t\t\t\t\t\tmore.removeAttribute('inert');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmore.setAttribute('inert', '');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (label) {\n\t\t\t\t\t\tlabel.textContent = expanded ? '\u66f4\u591a\u6210\u5c31' : '\u6536\u8d77\u6210\u5c31';\n\t\t\t\t\t}\n\n\t\t\t\t\tif (reduceMotion) {\n\t\t\t\t\t\tmore.classList.toggle('is-open', opening);\n\t\t\t\t\t\tmore.style.height = opening ? 'auto' : '';\n\t\t\t\t\t\tfinish();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (opening) {\n\t\t\t\t\t\tmore.style.height = '0px';\n\t\t\t\t\t\tmore.classList.add('is-open');\n\t\t\t\t\t\tmore.getBoundingClientRect();\n\t\t\t\t\t\tmore.style.height = more.scrollHeight + 'px';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmore.style.height = more.scrollHeight + 'px';\n\t\t\t\t\t\tmore.getBoundingClientRect();\n\t\t\t\t\t\tmore.classList.remove('is-open');\n\t\t\t\t\t\tmore.style.height = '0px';\n\t\t\t\t\t}\n\n\t\t\t\t\tvar fallback = window.setTimeout(finish, 420);\n\t\t\t\t\tmore.addEventListener('transitionend', function onTransitionEnd(event) {\n\t\t\t\t\t\tif (event.target !== more || event.propertyName !== 'height') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\twindow.clearTimeout(fallback);\n\t\t\t\t\t\tmore.removeEventListener('transitionend', onTransitionEnd);\n\t\t\t\t\t\tfinish();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t\troot.querySelectorAll('[data-kirby-achievement-claim]').forEach(function (form) {\n\t\t\t\tform.addEventListener('submit', function (event) {\n\t\t\t\t\tif (!window.fetch || !window.FormData || !form.getAttribute('data-ajax')) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tvar card = form.closest('[data-kirby-achievement-badge]');\n\t\t\t\t\tvar panel = form.closest('[data-kirby-achievement-card]');\n\t\t\t\t\tvar button = form.querySelector('button[type=\"submit\"]');\n\t\t\t\t\tvar status = card ? card.querySelector('.kirby-vg-achievement-foot small') : null;\n\t\t\t\t\tvar originalText = button ? button.textContent : '';\n\t\t\t\t\tvar data = new FormData(form);\n\t\t\t\t\tdata.set('action', 'kirby_vg_claim_achievement_reward');\n\t\t\t\t\tdata.delete('kirby_vg_action');\n\n\t\t\t\t\tif (button) {\n\t\t\t\t\t\tbutton.disabled = true;\n\t\t\t\t\t\tbutton.classList.add('is-loading');\n\t\t\t\t\t\tbutton.textContent = '\u9886\u53d6\u4e2d...';\n\t\t\t\t\t}\n\t\t\t\t\tif (status) {\n\t\t\t\t\t\tstatus.textContent = '\u6b63\u5728\u653e\u8fdb\u53e3\u888b';\n\t\t\t\t\t}\n\n\t\t\t\t\tfetch(form.getAttribute('data-ajax'), {\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\tcredentials: 'same-origin',\n\t\t\t\t\t\tbody: data\n\t\t\t\t\t}).then(function (response) {\n\t\t\t\t\t\treturn response.json();\n\t\t\t\t\t}).then(function (payload) {\n\t\t\t\t\t\tif (!payload || !payload.success || !payload.data) {\n\t\t\t\t\t\t\tthrow new Error(payload && payload.data && payload.data.message ? payload.data.message : 'achievement_failed');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (card) {\n\t\t\t\t\t\t\tcard.classList.remove('is-claimable', 'is-locked');\n\t\t\t\t\t\t\tcard.classList.add('is-unlocked', 'is-claimed', 'is-just-claimed');\n\t\t\t\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\t\t\t\tcard.classList.remove('is-just-claimed');\n\t\t\t\t\t\t\t}, 520);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (status) {\n\t\t\t\t\t\t\tstatus.textContent = '\u5df2\u9886\u53d6';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar claimedState = document.createElement('span');\n\t\t\t\t\t\tclaimedState.className = 'kirby-vg-achievement-state';\n\t\t\t\t\t\tclaimedState.textContent = '\u5df2\u653e\u5165\u53e3\u888b';\n\t\t\t\t\t\tform.replaceWith(claimedState);\n\n\t\t\t\t\t\troot.querySelectorAll('[data-kirby-user-points]').forEach(function (item) {\n\t\t\t\t\t\t\tif (typeof payload.data.points !== 'undefined') {\n\t\t\t\t\t\t\t\titem.textContent = String(payload.data.points);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\troot.querySelectorAll('[data-kirby-total-points]').forEach(function (item) {\n\t\t\t\t\t\t\tif (typeof payload.data.total_points !== 'undefined') {\n\t\t\t\t\t\t\t\titem.textContent = String(payload.data.total_points);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (panel) {\n\t\t\t\t\t\t\tvar score = panel.querySelector('[data-kirby-achievement-score]');\n\t\t\t\t\t\t\tvar claimedCount = panel.querySelector('[data-kirby-achievement-claimed-count]');\n\t\t\t\t\t\t\tvar more = panel.querySelector('[data-kirby-achievement-more]');\n\t\t\t\t\t\t\tvar toggle = panel.querySelector('[data-kirby-achievement-toggle]');\n\n\t\t\t\t\t\t\tif (score && typeof payload.data.unlocked !== 'undefined' && typeof payload.data.total !== 'undefined') {\n\t\t\t\t\t\t\t\tscore.textContent = String(payload.data.unlocked) + '\/' + String(payload.data.total);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (claimedCount && typeof payload.data.claimed_count !== 'undefined') {\n\t\t\t\t\t\t\t\tclaimedCount.textContent = String(payload.data.claimed_count);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (toggle && more) {\n\t\t\t\t\t\t\t\ttoggle.classList.toggle('has-alert', !!more.querySelector('.kirby-vg-achievement-badge.is-claimable'));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}).catch(function (error) {\n\t\t\t\t\t\tif (button) {\n\t\t\t\t\t\t\tbutton.disabled = false;\n\t\t\t\t\t\t\tbutton.classList.remove('is-loading');\n\t\t\t\t\t\t\tbutton.textContent = originalText || '\u9886\u53d6\u661f\u661f';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (status) {\n\t\t\t\t\t\t\tstatus.textContent = error && error.message && error.message !== 'achievement_failed' ? error.message : '\u9886\u53d6\u6ca1\u6709\u6210\u529f\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5';\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t\troot.querySelectorAll('[data-kirby-comment-form]').forEach(function (form) {\n\t\t\t\tform.addEventListener('submit', function (event) {\n\t\t\t\t\tif (!window.fetch || !window.FormData || !form.getAttribute('data-ajax')) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tvar button = form.querySelector('button[type=\"submit\"]');\n\t\t\t\t\tvar textarea = form.querySelector('textarea[name=\"kirby_vg_comment\"]');\n\t\t\t\t\tvar status = form.querySelector('[data-kirby-comment-status]');\n\t\t\t\t\tvar wrapper = form.closest('[data-kirby-comments]');\n\t\t\t\t\tvar list = wrapper ? wrapper.querySelector('[data-kirby-comment-list]') : null;\n\t\t\t\t\tvar count = wrapper ? wrapper.querySelector('[data-kirby-comment-count]') : null;\n\t\t\t\t\tvar data = new FormData(form);\n\t\t\t\t\tdata.set('action', 'kirby_vg_add_comment');\n\t\t\t\t\tdata.delete('kirby_vg_action');\n\n\t\t\t\t\tif (button) {\n\t\t\t\t\t\tbutton.disabled = true;\n\t\t\t\t\t\tbutton.textContent = '\u53d1\u9001\u4e2d...';\n\t\t\t\t\t}\n\t\t\t\t\tif (status) {\n\t\t\t\t\t\tstatus.textContent = '\u6b63\u5728\u628a\u7559\u8a00\u8d34\u6210\u5c0f\u4e91\u6735\u3002';\n\t\t\t\t\t}\n\n\t\t\t\t\tfetch(form.getAttribute('data-ajax'), {\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\tcredentials: 'same-origin',\n\t\t\t\t\t\tbody: data\n\t\t\t\t\t}).then(function (response) {\n\t\t\t\t\t\treturn response.json();\n\t\t\t\t\t}).then(function (payload) {\n\t\t\t\t\t\tif (!payload || !payload.success || !payload.data) {\n\t\t\t\t\t\t\tthrow new Error(payload && payload.data && payload.data.message ? payload.data.message : 'comment_failed');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (list && payload.data.html) {\n\t\t\t\t\t\t\tvar empty = list.querySelector('[data-kirby-comment-empty]');\n\t\t\t\t\t\t\tif (empty) {\n\t\t\t\t\t\t\t\tempty.remove();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlist.insertAdjacentHTML('beforeend', payload.data.html);\n\t\t\t\t\t\t\tvar added = list.lastElementChild;\n\t\t\t\t\t\t\tif (added) {\n\t\t\t\t\t\t\t\tadded.classList.add('is-new');\n\t\t\t\t\t\t\t\tadded.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (count && typeof payload.data.count !== 'undefined') {\n\t\t\t\t\t\t\tcount.textContent = String(payload.data.count);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (textarea) {\n\t\t\t\t\t\t\ttextarea.value = '';\n\t\t\t\t\t\t\ttextarea.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (status) {\n\t\t\t\t\t\t\tstatus.textContent = payload.data.message || '\u7559\u8a00\u5df2\u7ecf\u8d34\u5230\u56fe\u7247\u4e0b\u9762\u3002';\n\t\t\t\t\t\t}\n\t\t\t\t\t}).catch(function (error) {\n\t\t\t\t\t\tif (status) {\n\t\t\t\t\t\t\tstatus.textContent = error && error.message && error.message !== 'comment_failed' ? error.message : '\u7559\u8a00\u6ca1\u6709\u53d1\u9001\u6210\u529f\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002';\n\t\t\t\t\t\t}\n\t\t\t\t\t}).finally(function () {\n\t\t\t\t\t\tif (button) {\n\t\t\t\t\t\t\tbutton.disabled = false;\n\t\t\t\t\t\t\tbutton.textContent = '\u7559\u8a00';\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tvar lightbox = root.querySelector('.kirby-vg-lightbox');\n\t\t\tif (lightbox) {\n\t\t\t\tvar lightboxImage = lightbox.querySelector('img');\n\t\t\t\tvar lightboxTitle = lightbox.querySelector('[data-kirby-lightbox-title]');\n\t\t\t\tvar closeLightbox = function () {\n\t\t\t\t\tlightbox.setAttribute('aria-hidden', 'true');\n\t\t\t\t\tif (lightboxImage) {\n\t\t\t\t\t\tlightboxImage.removeAttribute('src');\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\troot.querySelectorAll('[data-kirby-lightbox]').forEach(function (trigger) {\n\t\t\t\t\ttrigger.addEventListener('click', function () {\n\t\t\t\t\t\tlightboxImage.src = trigger.getAttribute('data-src');\n\t\t\t\t\t\tlightboxImage.alt = trigger.getAttribute('data-title') || '';\n\t\t\t\t\t\tlightboxTitle.textContent = trigger.getAttribute('data-title') || '';\n\t\t\t\t\t\tlightbox.setAttribute('aria-hidden', 'false');\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tlightbox.querySelector('[data-kirby-close]').addEventListener('click', closeLightbox);\n\t\t\t\tlightbox.addEventListener('click', function (event) {\n\t\t\t\t\tif (event.target === lightbox) {\n\t\t\t\t\t\tcloseLightbox();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tdocument.addEventListener('keydown', function (event) {\n\t\t\t\t\tif (event.key === 'Escape') {\n\t\t\t\t\t\tcloseLightbox();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t})();\n\t<\/script>\n\t\t<script>\n\t\t(function () {\n\t\t\tif (window.kirbyVgStarsReady) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\twindow.kirbyVgStarsReady = true;\n\t\t\tfunction clearStarState(button, className) {\n\t\t\t\tif (!button) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tbutton.classList.remove(className);\n\t\t\t}\n\t\t\tfunction flashStarError(button) {\n\t\t\t\tbutton.classList.add('has-error');\n\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\tclearStarState(button, 'has-error');\n\t\t\t\t}, 900);\n\t\t\t}\n\t\t\tfunction sendStar(button) {\n\t\t\t\tif (!button || button.disabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!window.fetch || !window.FormData) {\n\t\t\t\t\tflashStarError(button);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar form = button.closest('form');\n\t\t\t\tif (form) {\n\t\t\t\t\tform.addEventListener('submit', function (event) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}, { once: true });\n\t\t\t\t}\n\t\t\t\tvar data = new FormData();\n\t\t\t\tdata.append('action', 'kirby_vg_toggle_star');\n\t\t\t\tdata.append('attachment_id', button.getAttribute('data-attachment-id'));\n\t\t\t\tdata.append('nonce', button.getAttribute('data-nonce'));\n\t\t\t\tbutton.disabled = true;\n\t\t\t\tbutton.classList.add('is-loading');\n\t\t\t\tfetch(button.getAttribute('data-ajax'), {\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\tcredentials: 'same-origin',\n\t\t\t\t\tbody: data\n\t\t\t\t}).then(function (response) {\n\t\t\t\t\treturn response.json();\n\t\t\t\t}).then(function (payload) {\n\t\t\t\t\tif (!payload || !payload.success) {\n\t\t\t\t\t\tflashStarError(button);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tvar count = button.querySelector('[data-kirby-star-count]');\n\t\t\t\t\tif (count) {\n\t\t\t\t\t\tcount.textContent = payload.data.count;\n\t\t\t\t\t}\n\t\t\t\t\tbutton.classList.toggle('is-starred', !!payload.data.starred);\n\t\t\t\t\tbutton.setAttribute('aria-pressed', payload.data.starred ? 'true' : 'false');\n\t\t\t\t\tif (payload.data.starred) {\n\t\t\t\t\t\tvar rect = button.getBoundingClientRect();\n\t\t\t\t\t\tvar pop = document.createElement('span');\n\t\t\t\t\t\tpop.className = 'kirby-vg-star-pop';\n\t\t\t\t\t\tpop.textContent = '\u2605';\n\t\t\t\t\t\tpop.style.left = (rect.left + rect.width \/ 2) + 'px';\n\t\t\t\t\t\tpop.style.top = rect.top + 'px';\n\t\t\t\t\t\tdocument.body.appendChild(pop);\n\t\t\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\t\t\tpop.remove();\n\t\t\t\t\t\t}, 820);\n\t\t\t\t\t}\n\t\t\t\t}).finally(function () {\n\t\t\t\t\tbutton.disabled = false;\n\t\t\t\t\tbutton.classList.remove('is-loading');\n\t\t\t\t}).catch(function () {\n\t\t\t\t\tbutton.disabled = false;\n\t\t\t\t\tbutton.classList.remove('is-loading');\n\t\t\t\t\tflashStarError(button);\n\t\t\t\t});\n\t\t\t}\n\t\t\tdocument.addEventListener('click', function (event) {\n\t\t\t\tvar rawTarget = event.target;\n\t\t\t\tvar target = rawTarget && rawTarget.nodeType === 1 ? rawTarget : (rawTarget && rawTarget.parentElement ? rawTarget.parentElement : null);\n\t\t\t\tvar button = target && target.closest ? target.closest('[data-kirby-star-button]') : null;\n\t\t\t\tif (!button) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tsendStar(button);\n\t\t\t});\n\t\t})();\n\t<\/script>\n\t\t\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-17","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/remandram.top\/index.php\/wp-json\/wp\/v2\/pages\/17","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/remandram.top\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/remandram.top\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/remandram.top\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/remandram.top\/index.php\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":0,"href":"https:\/\/remandram.top\/index.php\/wp-json\/wp\/v2\/pages\/17\/revisions"}],"wp:attachment":[{"href":"https:\/\/remandram.top\/index.php\/wp-json\/wp\/v2\/media?parent=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}