/* King Squishy Holiday FX · pepero（浅色）· build p20261019-232102 */
/* ===== Christmas / pepero — 生成件（勿手改，改配方或 css.py 后重跑 build_pack.py） ===== */
:root{--pop-cream:#FFF6EB;--pop-cream-deep:#F3EAE3;--pop-line:#E3D3C7;--pop-ink:#33241C;--pop-ink-soft:#5A4034;--pop-surface:#FFFBF4;--pop-tint-peach:#FCE4D8;--pop-tint-sky:#E6EDF9;--pop-tint-butter:#FBF0CE;--pop-tint-mint:#E2F1E8;--pop-tint-lilac:#ECE9F7;--pop-radius:18px;--pop-radius-lg:26px;--pop-ease:cubic-bezier(.2,.9,.3,1);--pop-spring:cubic-bezier(.34,1.66,.5,1);--ksfx-red:#C0463F;--ksfx-red-deep:#94322C;--ksfx-green:#2F7953;--ksfx-green-deep:#256A43;--ksfx-gold:#D99B22;--ksfx-gold-soft:#F6E6BC;--ksfx-white:#FFFFFF;--ksfx-ice:#EFD9CB;--ksfx-glow:rgba(90,64,52,.20);--ksfx-surface:#FFFFFF;--ksfx-surface-2:#FBF6F1;--ksfx-tint-1:#F7EFE8;--ksfx-tint-2:#F4F1EC;--ksfx-band-bg:#262322;--ksfx-band-2:#272020;--ksfx-band-fg:#FFF6EB;--ksfx-band-fg-soft:rgba(255,246,235,.82);--ksfx-note-fg:#B23A12;--ksfx-panel-link:#B23A12;--ksfx-row:rgba(51,36,28,.07);--ksfx-onaccent:#FFFFFF;--ksfx-onstrip:#FFF6EF;--ksfx-onstrip2:#F0DCD0;--ksfx-onstrip-line:rgba(255,246,239,.5);--ksfx-prose:#38251C;--ksfx-focus-ring:rgba(51,36,28,.22);--ksfx-el-shadow:rgba(51,36,28,.18);--ksfx-blob-1:#F8F0E9;--ksfx-blob-2:#F1E4DA;--ksfx-blob-3:#EBDCD0;--ksfx-blob-4:rgba(235,220,208,0);--ksfx-m-ball:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.5' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9' fill='%23F2C230'/%3E%3Cpath d='M12 3c2.4 3 3.6 6 3.6 9S14.4 18 12 21z' fill='%23C0463F'/%3E%3Cpath d='M3.4 9.4h17.2M3.4 14.6h17.2' fill='none' stroke='%23FFFFFF' stroke-width='1.1' opacity='.8'/%3E%3Ccircle cx='12' cy='12' r='9' fill='none'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-balloon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.5' stroke-linejoin='round'%3E%3Cellipse cx='11.4' cy='9' rx='6.4' ry='7.4' fill='%23C0463F'/%3E%3Cpath d='M8.4 4.6c1.2 1 1.8 2.6 1.6 4.4' fill='none' stroke='%23FFFFFF' stroke-width='1.2' opacity='.7'/%3E%3Cpath d='M11.4 16.4l-1.7 1.7 1.7 1.1 1.7-1.1z' fill='%2394322C'/%3E%3Cpath d='M11.4 19.2c1.6 1.4.6 2.6-.6 3.6' fill='none' stroke='%235A4034' stroke-width='1'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-bee:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.5' stroke-linejoin='round'%3E%3Cellipse cx='12.4' cy='14.4' rx='7.2' ry='5' fill='%23D99B22'/%3E%3Cpath d='M9.6 9.8v9M13.4 9.2v10.4' fill='none' stroke-width='1.7'/%3E%3Cellipse cx='8.6' cy='8.4' rx='4.2' ry='2.8' fill='%23EFD9CB' opacity='.9'/%3E%3Cpath d='M5.6 7.4c-.8-1.2-2-1.6-3-1.4' fill='none' stroke-width='1' stroke-linecap='round'/%3E%3Cpath d='M19.6 13.4c1.4-.4 2.4 0 3 .8' fill='none' stroke-width='1.4' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-bow_small:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.45' stroke-linejoin='round'%3E%3Cpath d='M12 12c-2-2.2-3.8-3-5.2-2.2-1.7 1-1.7 3.4 0 4.4 1.4.8 3.2 0 5.2-2.2z' fill='%23C0463F'/%3E%3Cpath d='M12 12c2-2.2 3.8-3 5.2-2.2 1.7 1 1.7 3.4 0 4.4-1.4.8-3.2 0-5.2-2.2z' fill='%23C0463F'/%3E%3Ccircle cx='12' cy='12' r='1.7' fill='%23D99B22'/%3E%3Cpath d='M10.6 13.6 9.2 19.4M13.4 13.6l1.4 5.8' fill='none' stroke='%2394322C' stroke-width='1.5'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-butterfly:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M11.4 9.6C9.8 6.2 6.8 4.4 4.6 5.8c-2.1 1.3-1.5 5 1.4 6.4-2.9 1.4-3.5 5.1-1.4 6.4 2.2 1.4 5.2-.4 6.8-3.8z' fill='%23C0463F'/%3E%3Cpath d='M12.6 9.6c1.6-3.4 4.6-5.2 6.8-3.8 2.1 1.3 1.5 5-1.4 6.4 2.9 1.4 3.5 5.1 1.4 6.4-2.2 1.4-5.2-.4-6.8-3.8z' fill='%23D99B22'/%3E%3Cpath d='M12 7.8v10' fill='none' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M12 7.4c-.8-1.6-1.9-2.3-3-2.5M12 7.4c.8-1.6 1.9-2.3 3-2.5' fill='none' stroke-width='1.1' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-card_gift:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.45' stroke-linejoin='round'%3E%3Cpath d='M4.4 6.6h15.2v12.8H4.4z' fill='%23FFF6EB'/%3E%3Cpath d='M4.4 6.6 12 12.4l7.6-5.8' fill='none' stroke='%235A4034' stroke-width='.9' opacity='.75'/%3E%3Cpath d='M12 19.2l-1.6-1.4-1.6 1.4.4-2.2-1.6-1.4h2.2L11 13.4l.9 2.2h2.2l-1.6 1.4z' fill='%23D99B22'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-choco_bar:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.45' stroke-linejoin='round'%3E%3Cpath d='M5.4 8.4h13.2v10.2H5.4z' fill='%235A4034'/%3E%3Cpath d='M5.4 8.4h13.2v3.4H5.4z' fill='%23D99B22'/%3E%3Cpath d='M9.8 8.4v10.2M14.2 8.4v10.2M5.4 13.6h13.2' fill='none' stroke='%2333241C' stroke-width='.9'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-choco_bowl:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.45' stroke-linejoin='round'%3E%3Cpath d='M4.4 12.4h15.2v3.4c0 2.6-3.4 4.6-7.6 4.6s-7.6-2-7.6-4.6z' fill='%235E86B5'/%3E%3Cpath d='M4.4 12.4c0-1.6 3.4-2.6 7.6-2.6s7.6 1 7.6 2.6z' fill='%235A4034'/%3E%3Cpath d='M9 6.6 10.4 12M15 6.6 13.6 12' fill='none' stroke='%23F6E6BC' stroke-width='2.6' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-cloud:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M4.8 15.6c-2 0-3.4-1.5-3.4-3.2s1.5-3.2 3.6-3.2c.3-2.5 2.4-4.4 5-4.4 2.3 0 4.2 1.5 4.8 3.6.4-.2 1-.3 1.5-.3 2.3 0 4 1.7 4 3.8s-1.7 3.7-4 3.7z' fill='%23F6E6BC'/%3E%3Cpath d='M5.4 12.6h11' fill='none' stroke-width='.9' opacity='.5'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-cocoa_grid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Crect width='24' height='24' fill='%23F3EAE3'/%3E%3Cg fill='none' stroke='%235A4034' stroke-width='.7' opacity='.10'%3E%3Cpath d='M3 0v24M12 0v24M21 0v24'/%3E%3C/g%3E%3Cg fill='none' stroke='%23C0463F' stroke-width='.7' opacity='.07'%3E%3Cpath d='M0 9h24M0 19h24'/%3E%3C/g%3E%3Cg fill='%23D99B22' opacity='.10'%3E%3Ccircle cx='8' cy='15' r='1.1'/%3E%3Ccircle cx='18' cy='6' r='.9'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-crumb_dot:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.45' stroke-linejoin='round'%3E%3Ccircle cx='9.4' cy='12.4' r='3' fill='%235A4034'/%3E%3Ccircle cx='15' cy='14.6' r='2.4' fill='%235A4034'/%3E%3Ccircle cx='12.6' cy='9' r='2' fill='%23D99B22'/%3E%3Cpath d='M6.4 17.6c4 1.4 8 1.4 12 0' fill='none' stroke='%23F6E6BC' stroke-width='1.3'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-crumb_dots:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='%235A4034' opacity='.26'%3E%3Ccircle cx='16' cy='22' r='3'/%3E%3Ccircle cx='76' cy='66' r='3'/%3E%3Ccircle cx='98' cy='106' r='2.6'/%3E%3C/g%3E%3Cg fill='%23D99B22' opacity='.22'%3E%3Ccircle cx='46' cy='12' r='2.3'/%3E%3Ccircle cx='32' cy='56' r='2.3'/%3E%3Ccircle cx='64' cy='110' r='2'/%3E%3C/g%3E%3Cg fill='%23C0463F' opacity='.20'%3E%3Ccircle cx='90' cy='20' r='1.8'/%3E%3Ccircle cx='12' cy='70' r='1.7'/%3E%3Ccircle cx='108' cy='46' r='1.6'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-fish:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M8 12c2-3.4 5.4-5 9-5 3.2 0 5.6 1.6 6.6 4-1 2.4-3.4 4-6.6 4-3.6 0-7-1.6-9-5z' fill='%23D99B22'/%3E%3Cpath d='M8 12 3.2 8.4l.6 7.2z' fill='%23C0463F'/%3E%3Ccircle cx='18.6' cy='10.6' r='1' fill='%2333241C'/%3E%3Cpath d='M12.6 8.4c1.4 1.8 1.4 3.4 0 5.2' fill='none' stroke-width='.9'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-gift_bag:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.45' stroke-linejoin='round'%3E%3Cpath d='M6.4 9.4h11.2l-1.2 10.6H7.6z' fill='%23C0463F'/%3E%3Cpath d='M8.6 9.4c0-2 1.6-3.4 3.4-3.4s3.4 1.4 3.4 3.4' fill='none' stroke='%2333241C' stroke-width='1.3'/%3E%3Cpath d='M10.4 13.4h3.2' fill='none' stroke='%23F3EAE3' stroke-width='1.2'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-kite:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M12 2.4c3.4 2.6 6.4 5.6 8.4 9.4-1.2 4.6-4 8.4-8.4 10-4.4-1.6-7.2-5.4-8.4-10 2-3.8 5-6.8 8.4-9.4z' fill='%23C0463F'/%3E%3Cpath d='M12 4.4v13.6M6.4 12.4h11.2' fill='none' stroke-width='.9' opacity='.55'/%3E%3Cpath d='M12 23v.6' fill='none' stroke-width='1.2'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-ladybug:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.5' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='13.6' rx='7.4' ry='6.2' fill='%23C0463F'/%3E%3Cpath d='M12 7.4v12.4' fill='none' stroke-width='1.3'/%3E%3Ccircle cx='8.8' cy='11.8' r='1.2' fill='%2333241C'/%3E%3Ccircle cx='8.6' cy='16' r='1.2' fill='%2333241C'/%3E%3Ccircle cx='15.2' cy='11.8' r='1.2' fill='%2333241C'/%3E%3Ccircle cx='15.4' cy='16' r='1.2' fill='%2333241C'/%3E%3Ccircle cx='12' cy='4.6' r='2.3' fill='%2333241C'/%3E%3Cpath d='M10.6 3.4 9.2 1.8M13.4 3.4l1.4-1.6' fill='none' stroke-width='1' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-milk_carton:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.45' stroke-linejoin='round'%3E%3Cpath d='M7.4 8.6h9.2v11.6H7.4z' fill='%23FFF6EB'/%3E%3Cpath d='M7.4 8.6 12 4.4l4.6 4.2' fill='%235E86B5'/%3E%3Cpath d='M9.4 13.4h5.2M9.4 16.4h5.2' fill='none' stroke='%235A4034' stroke-width='1.1'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-pepero:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.45' stroke-linejoin='round'%3E%3Crect x='9.7' y='2.6' width='4.6' height='18.8' rx='2.3' fill='%23F6E6BC'/%3E%3Cpath d='M9.7 5c0-1.3.5-2.4 2.3-2.4S14.3 3.7 14.3 5v6.4c0 .9-1 1.5-2.3 1.5S9.7 12.3 9.7 11.4z' fill='%235A4034'/%3E%3Cpath d='M11.3 5.2v4.8' fill='none' stroke='%23FFF6EB' stroke-width='.9' stroke-linecap='round' opacity='.55'/%3E%3Cpath d='M10.6 18.4h2.8' fill='none' stroke='%235A4034' stroke-width='.8' opacity='.45'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-pepero_box:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.45' stroke-linejoin='round'%3E%3Cpath d='M6.4 8.4h11.2v12.2H6.4z' fill='%23C0463F'/%3E%3Cpath d='M6.4 8.4h11.2v3.2H6.4z' fill='%2394322C'/%3E%3Cpath d='M9 12.6h6M9 15h6' fill='none' stroke='%23F3EAE3' stroke-width='1.1'/%3E%3Cpath d='M12 8.4c-.8-2-2.2-3-3.8-2.6M12 8.4c.8-2 2.2-3 3.8-2.6' fill='none' stroke='%235A4034' stroke-width='1.1'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-pepero_pair:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.35' stroke-linejoin='round'%3E%3Cg transform='rotate(17 12 12)'%3E%3Crect x='10.3' y='2.6' width='3.4' height='16.6' rx='1.7' fill='%23F6E6BC'/%3E%3Cpath d='M10.3 4.3c0-1 .8-1.7 1.7-1.7s1.7.7 1.7 1.7v5.2c0 .7-.8 1.2-1.7 1.2s-1.7-.5-1.7-1.2z' fill='%235A4034'/%3E%3C/g%3E%3Cg transform='rotate(-17 12 12)'%3E%3Crect x='10.3' y='2.6' width='3.4' height='16.6' rx='1.7' fill='%23F6E6BC'/%3E%3Cpath d='M10.3 4.3c0-1 .8-1.7 1.7-1.7s1.7.7 1.7 1.7v5.2c0 .7-.8 1.2-1.7 1.2s-1.7-.5-1.7-1.2z' fill='%235A4034'/%3E%3C/g%3E%3Crect x='7.4' y='10.2' width='9.2' height='3.4' rx='1.3' fill='%23C0463F'/%3E%3Cpath d='M9.4 11.9h5.2' fill='none' stroke='%23FFF6EB' stroke-width='.8' opacity='.5'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-pepero_s:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='2.1' stroke-linejoin='round'%3E%3Crect x='7.6' y='2' width='8.8' height='20' rx='4.4' fill='%23F6E6BC'/%3E%3Cpath d='M7.6 5.4c0-2 1.9-3.4 4.4-3.4s4.4 1.4 4.4 3.4v6.4c0 1.5-1.9 2.6-4.4 2.6s-4.4-1.1-4.4-2.6z' fill='%235A4034'/%3E%3Cpath d='M10.4 5.6v4.6' fill='none' stroke='%23FFF6EB' stroke-width='1.7' stroke-linecap='round' opacity='.6'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-pinwheel:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M12 11.2V3.6a7.6 7.6 0 0 1 7.6 7.6z' fill='%23C0463F'/%3E%3Cpath d='M12 11.2h7.6a7.6 7.6 0 0 1-7.6 7.6z' fill='%23F2C230'/%3E%3Cpath d='M12 11.2v7.6a7.6 7.6 0 0 1-7.6-7.6z' fill='%235E86B5'/%3E%3Cpath d='M12 11.2H4.4A7.6 7.6 0 0 1 12 3.6z' fill='%232F7953'/%3E%3Ccircle cx='12' cy='11.2' r='1.4' fill='%2333241C'/%3E%3Cpath d='M12 11.2 8.2 21.8' fill='none' stroke='%2333241C' stroke-width='1.5'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-rainbow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M3 19.4a9 9 0 0 1 18 0' fill='none' stroke='%23C0463F' stroke-width='3.4'/%3E%3Cpath d='M6.2 19.4a5.8 5.8 0 0 1 11.6 0' fill='none' stroke='%23F2C230' stroke-width='3.4'/%3E%3Cpath d='M9.4 19.4a2.6 2.6 0 0 1 5.2 0' fill='none' stroke='%235E86B5' stroke-width='3.4'/%3E%3Ccircle cx='4.6' cy='20.6' r='2.3' fill='%23FFFFFF'/%3E%3Ccircle cx='19.4' cy='20.6' r='2.3' fill='%23FFFFFF'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-ribbon_roll:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.45' stroke-linejoin='round'%3E%3Ccircle cx='11.4' cy='12' r='7' fill='%23C0463F'/%3E%3Ccircle cx='11.4' cy='12' r='3' fill='%23F3EAE3'/%3E%3Cpath d='M17.4 7.6c1.6-.8 3 .2 2.6 1.8-.4 1.4-2 2-3.2 1z' fill='%2394322C'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-ribbon_wave:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='26' viewBox='0 0 160 26'%3E%3Cpath d='M0 14c14-7 26-7 38 0s24 7 38 0 24-7 38 0 20 7 26 0' fill='none' stroke='%23C0463F' stroke-width='1.8' opacity='.45'/%3E%3Cpath d='M0 21c14-6 26-6 38 0s24 6 38 0 24-6 38 0 20 6 26 0' fill='none' stroke='%23D99B22' stroke-width='1.3' opacity='.40'/%3E%3Cg fill='%23C0463F' opacity='.26'%3E%3Ccircle cx='30' cy='6' r='1.6'/%3E%3Ccircle cx='110' cy='7' r='1.5'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-sparkle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.6c.9 4.6 2.7 6.4 7.3 7.3-4.6.9-6.4 2.7-7.3 7.3-.9-4.6-2.7-6.4-7.3-7.3 4.6-.9 6.4-2.7 7.3-7.3Z' fill='%23D99B22' stroke='%2333241C' stroke-width='1.4' stroke-linejoin='round'/%3E%3Cpath d='M19.4 15.6c.3 1.6 1 2.3 2.6 2.6-1.6.3-2.3 1-2.6 2.6-.3-1.6-1-2.3-2.6-2.6 1.6-.3 2.3-1 2.6-2.6Z' fill='%23FFFFFF' stroke='%2333241C' stroke-width='1.1' stroke-linejoin='round'/%3E%3C/svg%3E");--ksfx-m-sprinkle_stick:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.45' stroke-linejoin='round'%3E%3Cpath d='M11 8.4h2v12.4h-2z' fill='%23F6E6BC'/%3E%3Cg stroke='%23C0463F' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M12 4.6v3.8'/%3E%3Cpath d='M9.4 5.6l1 2.8M14.6 5.6l-1 2.8'/%3E%3C/g%3E%3Cg fill='%2394322C'%3E%3Ccircle cx='10.2' cy='11.4' r='.9'/%3E%3Ccircle cx='13.8' cy='13.6' r='.9'/%3E%3Ccircle cx='10.6' cy='16.4' r='.9'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");--ksfx-m-star_gift:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.45' stroke-linejoin='round'%3E%3Cpath d='M12 3.4l2.4 5 5.4.7-4 3.7 1.1 5.4-4.9-2.8-4.9 2.8 1.1-5.4-4-3.7 5.4-.7z' fill='%23D99B22'/%3E%3Cpath d='M12 8.6l1.4 2.9 3.1.4-2.3 2.1.6 3.1-2.8-1.6-2.8 1.6.6-3.1-2.3-2.1 3.1-.4z' fill='%23F3EAE3' opacity='.85'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-stick_band:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='18' viewBox='0 0 120 18'%3E%3Cg opacity='.55'%3E%3Cg fill='%23F6E6BC'%3E%3Crect x='6' y='4' width='4' height='12' rx='1.6'/%3E%3Crect x='26' y='4' width='4' height='12' rx='1.6'/%3E%3Crect x='46' y='4' width='4' height='12' rx='1.6'/%3E%3Crect x='66' y='4' width='4' height='12' rx='1.6'/%3E%3Crect x='86' y='4' width='4' height='12' rx='1.6'/%3E%3Crect x='106' y='4' width='4' height='12' rx='1.6'/%3E%3C/g%3E%3Cg fill='%235A4034'%3E%3Crect x='6' y='4' width='4' height='5.6' rx='1.6'/%3E%3Crect x='26' y='4' width='4' height='5.6' rx='1.6'/%3E%3Crect x='46' y='4' width='4' height='5.6' rx='1.6'/%3E%3Crect x='66' y='4' width='4' height='5.6' rx='1.6'/%3E%3Crect x='86' y='4' width='4' height='5.6' rx='1.6'/%3E%3Crect x='106' y='4' width='4' height='5.6' rx='1.6'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");--ksfx-m-sunny:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.5' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12.2' r='6' fill='%23D99B22'/%3E%3Cpath d='M12 2.2v2.4M12 19.8v2.4M2.2 12.2h2.4M19.4 12.2h2.4M5.2 5.4l1.7 1.7M17.1 17.3l1.7 1.7M18.8 5.4l-1.7 1.7M6.9 17.3l-1.7 1.7' fill='none' stroke='%2333241C' stroke-width='1.7' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-tape:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 24'%3E%3Cpath d='M3 6 9 3.8 15 6 21 3.9 27 6 33 3.8 39 6 45 3.9 51 6 57 3.8 63 6 69 3.9 75 6 81 3.8 87 6 93 4.2 93 18 87 20.2 81 18 75 20.1 69 18 63 20.2 57 18 51 20.1 45 18 39 20.2 33 18 27 20.1 21 18 15 20.2 9 18 3 20Z' fill='%23C0463F' opacity='.8'/%3E%3Cpath d='M3 6 9 3.8 15 6 21 3.9 27 6 33 3.8 39 6 45 3.9 51 6 57 3.8 63 6 69 3.9 75 6 81 3.8 87 6 93 4.2' fill='none' stroke='%2333241C' stroke-width='1.1' opacity='.55'/%3E%3Cg stroke='%23F6E6BC' stroke-width='3' opacity='.5'%3E%3Cpath d='M3 12h90'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-tape2:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 24'%3E%3Cpath d='M3 6 9 3.8 15 6 21 3.9 27 6 33 3.8 39 6 45 3.9 51 6 57 3.8 63 6 69 3.9 75 6 81 3.8 87 6 93 4.2 93 18 87 20.2 81 18 75 20.1 69 18 63 20.2 57 18 51 20.1 45 18 39 20.2 33 18 27 20.1 21 18 15 20.2 9 18 3 20Z' fill='%232F7953' opacity='.78'/%3E%3Cpath d='M3 6 9 3.8 15 6 21 3.9 27 6 33 3.8 39 6 45 3.9 51 6 57 3.8 63 6 69 3.9 75 6 81 3.8 87 6 93 4.2' fill='none' stroke='%2333241C' stroke-width='1.1' opacity='.5'/%3E%3Cg fill='%23FFFFFF' opacity='.72'%3E%3Ccircle cx='12' cy='12' r='1.7'/%3E%3Ccircle cx='36' cy='12' r='1.7'/%3E%3Ccircle cx='60' cy='12' r='1.7'/%3E%3Ccircle cx='84' cy='12' r='1.7'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-water_drop:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg stroke='%2333241C' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M12 2.6c4.2 5 6.3 8.3 6.3 11.2 0 3.7-2.8 6.4-6.3 6.4s-6.3-2.7-6.3-6.4C5.7 10.9 7.8 7.6 12 2.6z' fill='%23C0463F'/%3E%3Cpath d='M9.2 13.6c0 2 1.3 3.4 3 3.7' fill='none' stroke='%23FFFFFF' stroke-width='1.6' stroke-linecap='round' opacity='.72'/%3E%3C/g%3E%3C/svg%3E");--ksfx-m-wrap_line:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='18' viewBox='0 0 120 18'%3E%3Cg fill='none' stroke='%235A4034' stroke-width='1.7' stroke-linecap='butt' opacity='.45' stroke-dasharray='10 7'%3E%3Cpath d='M0 7h120'/%3E%3C/g%3E%3Cg fill='none' stroke='%23C0463F' stroke-width='1.6' stroke-linecap='butt' opacity='.40' stroke-dasharray='5 12'%3E%3Cpath d='M3 13h117'/%3E%3C/g%3E%3C/svg%3E");}
/* ====== T0 顶/底 ====== */
body.pop-theme .pop-price-note{position:relative;background:linear-gradient(100deg,var(--ksfx-green-deep) 0%,var(--ksfx-green) 44%,var(--ksfx-red) 78%,var(--ksfx-red-deep) 100%)}
body.pop-theme .pop-price-note__text{color:var(--ksfx-onstrip)}
body.pop-theme .pop-price-note__inner::after{content:var(--ksfx-strip,"");margin-inline-start:12px;padding-inline-start:12px;font-weight:800;color:var(--ksfx-onstrip2);
  border-inline-start:2px solid var(--ksfx-onstrip-line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1180px){body.pop-theme .pop-price-note__inner::after{display:none}}
body.pop-theme .pop-price-note::after{content:"";position:absolute;inset-inline:0;bottom:-18px;height:18px;pointer-events:none;z-index:3;
  background-image:var(--ksfx-m-stick_band);background-repeat:repeat-x;background-size:120px 18px}
body.pop-theme .pop-footer{position:relative}
body.pop-theme .pop-footer__grid{position:relative}
body.pop-theme .pop-footer__grid::before{content:"";position:absolute;inset-inline:0;top:-19px;height:18px;pointer-events:none;opacity:.92;
  background-image:var(--ksfx-m-stick_band);background-repeat:repeat-x;background-size:120px 18px}
body.pop-theme .pop-footer::after{content:"";position:absolute;inset-inline:0;top:-12px;height:26px;pointer-events:none;opacity:.85;
  background-image:var(--ksfx-m-ribbon_wave);background-repeat:repeat-x;background-size:160px 26px}
body.pop-theme .pop-footer__pay-note{font-weight:700}
/* FXFULL 新增落点：页脚 CTA 的「和纸胶带」——老缺口（页脚只在顶部挂了松枝串，CTA 本体 0 装饰） */
body.pop-theme .pop-footer__cta{position:relative}
/* 2026-10-13 视觉巡检：原来 `top:-13px` 的下半被卡片内容层盖住 → 只剩一条 13px 碎片，像残留物。
   加 z-index 让整条和纸胶带骑在卡片上沿（这才是设计本意：胶带压边）。 */
body.pop-theme .pop-footer__cta::after{content:"";position:absolute;inset-inline-end:16px;top:-13px;width:64px;height:22px;pointer-events:none;opacity:.9;z-index:2;
  background-image:var(--ksfx-m-tape);background-repeat:no-repeat;background-size:contain;transform:rotate(6deg)}

/* ====== T1 材质：整页霜纸 + 暖光 ====== */
body.pop-theme{background-color:var(--pop-cream);
  background-image:var(--ksfx-m-crumb_dots),radial-gradient(1100px 460px at 50% -180px,var(--ksfx-glow),rgba(255,255,255,0) 74%);
  background-repeat:repeat,no-repeat;background-size:240px 240px,auto}
body.pop-theme .pop-hero__blob{background:radial-gradient(circle at 50% 42%,var(--ksfx-blob-1) 0%,var(--ksfx-blob-2) 46%,var(--ksfx-blob-3) 74%,var(--ksfx-blob-4) 100%)}
body.pop-theme .pop-page-hero{position:relative;overflow:hidden}
body.pop-theme .pop-page-hero::before{content:"";position:absolute;inset-inline:0;top:0;height:16px;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-wrap_line);background-repeat:repeat-x;background-size:120px 16px}
body.pop-theme .pop-page-hero::after{content:"";position:absolute;inset-inline:0;bottom:0;height:26px;pointer-events:none;opacity:.9;
  background-image:var(--ksfx-m-ribbon_wave);background-repeat:repeat-x;background-size:160px 26px}
body.pop-theme .pop-section{position:relative}
body.pop-theme .pop-section::before{content:"";position:absolute;inset-inline-end:16px;top:10px;width:22px;height:22px;pointer-events:none;opacity:.5;
  background-image:var(--ksfx-m-card_gift);background-repeat:no-repeat;background-size:contain}
body.pop-theme .pop-head h2{position:relative;padding-inline-start:32px}
body.pop-theme .pop-head h2::before{content:"";position:absolute;inset-inline-start:0;top:50%;width:24px;height:24px;margin-top:-12px;
  background-image:var(--ksfx-m-card_gift);background-repeat:no-repeat;background-size:contain}
body.pop-theme .pop-trust{position:relative;padding-top:16px}
body.pop-theme .pop-trust::after{content:"";position:absolute;inset-inline:0;top:-2px;height:16px;pointer-events:none;opacity:.9;
  background-image:var(--ksfx-m-wrap_line);background-repeat:repeat-x;background-size:120px 16px}
body.pop-theme .pop-cats{position:relative}
body.pop-theme .pop-cat{position:relative}
body.pop-theme .pop-cat::before{content:"";position:absolute;inset-inline-end:10px;top:8px;width:26px;height:26px;pointer-events:none;opacity:.9;
  background-image:var(--ksfx-m-card_gift);background-repeat:no-repeat;background-size:contain}
/* 品类卡原有的 3n+2 / 3n 相位已交给配方 slots（T2b 位子轮换）统一管理 → 此处不再各写一半 */
body.pop-theme .pop-cta{position:relative;border:2px solid var(--pop-ink);border-radius:20px;box-shadow:0 5px 0 var(--pop-ink);
  background-color:var(--ksfx-band-bg);color:var(--ksfx-band-fg);
  background-image:var(--ksfx-m-crumb_dots),linear-gradient(180deg,var(--ksfx-band-bg),var(--ksfx-band-2));background-repeat:repeat,no-repeat;background-size:240px 240px,auto}
body.pop-theme .pop-latest-guides{position:relative}
body.pop-theme .pop-latest-guides::before{content:"";position:absolute;inset-inline-end:14px;top:-6px;width:34px;height:34px;pointer-events:none;opacity:.85;
  background-image:var(--ksfx-m-ball);background-repeat:no-repeat;background-size:contain}
/* ====== 批次 1 · 页眉（A1 公告条 / A2 主站头 / A3 主导航 / A4 下拉 / A5 控件 / A6 移动抽屉）====== */
@keyframes ksfxRing{0%,100%{transform:rotate(0deg)}22%{transform:rotate(11deg)}44%{transform:rotate(-9deg)}
  66%{transform:rotate(6deg)}82%{transform:rotate(-3deg)}}
/* A1 公告条：文案前一枚小铃铛。**默认完全静止**（D5：铃铛/星不自己动，指针来了才动）——
   静止=零主线程开销，也不会有"满屏都在动"的廉价感；悬停整条公告条时才摇一下（见 l1_interaction）。 */
body.pop-theme .pop-price-note__inner::before{content:"";width:17px;height:17px;flex:0 0 auto;margin-inline-end:8px;pointer-events:none;
  background-image:var(--ksfx-m-sunny);background-repeat:no-repeat;background-size:contain;
  transform-origin:50% 6%;transform:rotate(0deg)}
/* A2 主站头：logo 右上角一只知更鸟；页头下沿一条雪线（细、低对比、不挡任何内容） */
body.pop-theme .pop-brand{position:relative}
body.pop-theme .pop-brand::after{content:"";position:absolute;inset-inline-end:-3px;top:-12px;width:26px;height:26px;pointer-events:none;
  background-image:var(--ksfx-m-kite);background-repeat:no-repeat;background-size:contain;transform:rotate(9deg);
  transition:transform .3s var(--pop-spring)}
body.pop-theme .pop-header__inner{position:relative}
body.pop-theme .pop-header__inner::after{content:"";position:absolute;inset-inline:0;bottom:-1px;height:7px;pointer-events:none;opacity:.5;
  background-image:var(--ksfx-m-ribbon_wave);background-repeat:repeat-x;background-size:150px 7px}
/* A3 主导航：当前项挂一支冬青（只在下拉父项/当前页上，页面里 1 处）；悬停时纸带下划线从中间展开 */
body.pop-theme .pop-nav ul li a{position:relative}
body.pop-theme .pop-nav > ul > li > a::after{content:"";position:absolute;inset-inline:7px;bottom:1px;height:5px;pointer-events:none;border-radius:3px;
  background:linear-gradient(90deg,rgba(60,120,90,0),var(--ksfx-red) 16%,var(--ksfx-gold) 50%,var(--ksfx-red) 84%,rgba(60,120,90,0));
  transform:scaleX(0);transform-origin:50% 50%;transition:transform .26s var(--pop-spring)}
body.pop-theme .pop-nav .current-menu-item a::before{content:"";position:absolute;inset-inline-end:-4px;top:-6px;width:16px;height:16px;pointer-events:none;
  background-image:var(--ksfx-m-choco_bowl);background-repeat:no-repeat;background-size:contain;transform:rotate(12deg)}
/* A4 二级下拉：面板顶沿一条松枝串（面板本身已是 absolute + z-index 9999 —— ⚠️ 绝不能在这里写
   `position:relative`，那会把下拉从浮层打回文档流；绝对定位子元素对已定位祖先本来就成立） */
body.pop-theme .pop-nav ul.sub-menu::before{content:"";position:absolute;inset-inline:0;top:-11px;height:15px;pointer-events:none;opacity:.92;
  background-image:var(--ksfx-m-stick_band);background-repeat:repeat-x;background-size:104px 15px}
/* A5 头部控件：搜索按钮挂一枚圣诞拉炮；搜索浮层顶部一条彩灯串 */
body.pop-theme .pop-search-toggle{position:relative}
body.pop-theme .pop-search-toggle::after{content:"";position:absolute;inset-inline-end:-4px;top:-6px;width:15px;height:15px;pointer-events:none;
  background-image:var(--ksfx-m-rainbow);background-repeat:no-repeat;background-size:contain;transform:rotate(-16deg)}
body.pop-theme .pop-search-modal{position:relative}
body.pop-theme .pop-search-modal::before{content:"";position:absolute;inset-inline:0;top:0;height:15px;pointer-events:none;opacity:.9;
  background-image:var(--ksfx-m-wrap_line);background-repeat:repeat-x;background-size:112px 15px}
/* A6 移动抽屉：顶部一条松枝横幅；滑入用贴纸回弹曲线（抽屉本身是 fixed + translateX，不会产生滚动条） */
body.pop-theme .pop-mobile-menu__head{position:relative}
body.pop-theme .pop-mobile-menu__head::after{content:"";position:absolute;inset-inline:0;bottom:-9px;height:15px;pointer-events:none;opacity:.92;
  background-image:var(--ksfx-m-stick_band);background-repeat:repeat-x;background-size:104px 15px}
body.pop-theme .pop-mobile-menu{transition:transform .28s var(--pop-spring)}

/* ====== 批次 1 · 页脚（A7）====== */
/* 栏目标题下沿一串小彩灯（条带 → 不参与形状轮换预算；三个标题各一条） */
body.pop-theme .pop-footer__grid h4{position:relative}
/* 2026-10-13 视觉巡检：原 `bottom:-6px` 让这条 46×9 雪线**压在标题字脚上**（h4 行框 19px、字的下伸部到底沿，
   负 6px 只把雪线抬到 y16 → 横穿 g/q/y 的尾巴，像脏线）。改 -10px 让它落在字下方 1px。 */
body.pop-theme .pop-footer__grid h4::after{content:"";position:absolute;inset-inline-start:0;bottom:-10px;width:46px;height:9px;pointer-events:none;opacity:.85;
  background-image:var(--ksfx-m-wrap_line);background-repeat:repeat-x;background-size:46px 9px}
/* ====== 批次 2 · 首页 B1–B8（FXOPT）====== */
/* B2 品类卡：卡面图片角一枚母题（形状由配方 slots 的 cat_media 族轮换，周期 5 → 9 张卡每形 ≤2） */
body.pop-theme .pop-cat__media{position:relative}
body.pop-theme .pop-cat__media::before{content:"";position:absolute;inset-inline-start:-7px;top:-7px;width:38px;height:38px;pointer-events:none;opacity:.95;
  background-repeat:no-repeat;background-size:contain;transform:rotate(-7deg)}
/* 卡面底部一条雪地：**用渐变不用母题**（零形状预算、零新增元素），低对比、不挡主体与文字 */
body.pop-theme .pop-cat__media::after{content:"";position:absolute;inset-inline:0;bottom:0;height:24px;pointer-events:none;opacity:.55;
  background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.9))}
/* B3 区块顶沿 trim（形状轮换，周期 5）+ 区块标题右侧花饰（周期 5）——只挂首页 */
body.pop-front .pop-section{position:relative}
body.pop-front .pop-section::after{content:"";position:absolute;inset-inline:0;top:0;height:11px;pointer-events:none;opacity:.45;
  background-repeat:repeat-x;background-size:auto 11px}
body.pop-front .pop-head h2{position:relative}
body.pop-front .pop-head h2::after{content:"";position:absolute;inset-inline-start:100%;margin-inline-start:9px;top:-5px;width:19px;height:19px;pointer-events:none;opacity:.9;
  background-repeat:no-repeat;background-size:contain}
/* ⚠️ 花饰挂在标题盒**外侧**需 19+9=28px；手机端容器内边距只 20px → 实测 360–600px 全顶出 9px 横向溢出
   （≥700px 为 0）。窄屏改为贴内缘：位置视觉不变，但恒定不越界。 */
@media(max-width:700px){body.pop-front .pop-head h2::after{inset-inline-start:auto;inset-inline-end:0;margin-inline-start:0}}
/* B4 信任条：既有灯串**闪一闪**（复用已存在的 ::after，不新增元素/形状）；徽章可抬升 */
@keyframes ksfxBlink{0%,100%{opacity:.42}50%{opacity:.88}}
body.pop-theme .pop-trust::after{animation:ksfxBlink 3.8s ease-in-out infinite}
body.pop-theme .pop-trust__chip{transition:transform .22s var(--pop-spring)}
/* B5 价格行悬停变绿、卡片「→」位移（只动 color / transform → F5 零布局属性） */
body.pop-theme .pop-card__go{transition:transform .22s var(--pop-spring)}
body.pop-theme .pop-card__price{transition:color .2s var(--pop-ease)}
/* B6 采购时间线：卡角一枚母题（周期 4）。滚动逐个点亮属 L2 → 批次 6 */
body.pop-front .bjm-tl__card{position:relative}
body.pop-front .bjm-tl__card::before{content:"";position:absolute;inset-inline-start:-9px;top:-9px;width:30px;height:30px;pointer-events:none;opacity:.95;
  background-repeat:no-repeat;background-size:contain}
/* B7 FAQ：展开态母题换拐杖糖（**静态态不动** → 形状预算不受影响）+ 展开内容落雪（渐变雪点，非母题 → 零预算）
   ⚠️ 用 16px×1.12≈18px 的小尺寸档 `cane_s`：原 `cane` 在这个尺寸的深色态只剩一团灰白（实测，见 CANES 修复记录）。 */
body.pop-theme .pop-faq details[open]>summary::before{background-image:var(--ksfx-m-pepero_s)!important;transform:rotate(0deg) scale(1.12)}
body.pop-theme .pop-faq details[open] p{background-image:radial-gradient(circle at 14% 22%,rgba(255,255,255,.95) 1.7px,transparent 2.1px),
  radial-gradient(circle at 58% 12%,rgba(255,255,255,.8) 1.4px,transparent 1.9px),
  radial-gradient(circle at 78% 64%,rgba(255,255,255,.85) 1.5px,transparent 2px),
  radial-gradient(circle at 32% 82%,rgba(255,255,255,.75) 1.3px,transparent 1.8px);background-repeat:no-repeat}
/* B8 品牌盒：盒顶松枝带 + 右下角礼物堆（各 1 个，静态；都放在盒内 → 不怕 overflow 裁剪） */
body.pop-front .pop-cta{position:relative}
body.pop-front .pop-cta::before{content:"";position:absolute;inset-inline:0;top:0;height:16px;pointer-events:none;opacity:.9;
  background-image:var(--ksfx-m-stick_band);background-repeat:repeat-x;background-size:110px 16px}
body.pop-front .pop-cta::after{content:"";position:absolute;inset-inline-end:12px;bottom:8px;width:58px;height:58px;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-gift_bag);background-repeat:no-repeat;background-size:contain;transform:rotate(-4deg)}
/* ====== 批次 3 · 列表 / 分类 / 分页 / 空状态（FXOPT）====== */
/* C1 筛选条：整条升级为「工坊台面」——底沿一条雪线（台面前沿）+ 右上角一枚拉炮 */
body.pop-theme .ks-filters::before{content:"";position:absolute;inset-inline:0;bottom:0;height:13px;pointer-events:none;opacity:.5;
  border-end-start-radius:20px;border-end-end-radius:20px;
  background-image:var(--ksfx-m-ribbon_wave);background-repeat:repeat-x;background-size:150px 13px}
body.pop-theme .ks-filters::after{content:"";position:absolute;inset-inline-end:16px;top:6px;width:30px;height:30px;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-rainbow);background-repeat:no-repeat;background-size:contain;transform:rotate(-9deg);
  transition:transform .3s var(--pop-spring)}
/* C1 标签花饰：标签是 absolute 浮在卡片上沿的小药丸 → 花饰挂它右上角（不占卡片内部空间） */
body.pop-theme .ks-filters__label::after{content:"";position:absolute;inset-inline-end:-5px;top:-8px;width:16px;height:16px;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-sunny);background-repeat:no-repeat;background-size:contain;transform:rotate(11deg);
  transform-origin:50% 4%;transition:transform .3s var(--pop-spring)}
/* C2 下拉按钮：右上角一枚小挂件（形状由 slots 的 list_dd 族轮换，周期 7 → 每形 ≤1） */
body.pop-theme .ks-dd__btn{position:relative}
body.pop-theme .ks-dd__btn::before{content:"";position:absolute;inset-inline-end:-4px;top:-7px;width:17px;height:17px;pointer-events:none;opacity:.95;
  background-repeat:no-repeat;background-size:contain;transform:rotate(-8deg)}
/* C2 下拉面板：顶沿一条拐杖糖缎带。三个坑：① 面板 `overflow:auto` → 伪元素只能留在 padding 内
   （写负 top 会被裁掉），且必须 absolute，否则会把第一个选项挤下去；
   ② **必须用渐变、不能用画稿** —— 7 个面板各挂一条 garland 会把它顶到 11 次/页，
   真浏览器普查（census_shapes）实测撞了「同一形状 ≤5/页」硬门禁 → 渐变零形状预算；
   ③ 普查**只跳过伪元素自己的 display:none**，不跳过「元素 display:none」→ 隐藏元素上的挂件照样计数。 */
body.pop-theme .ks-dd__panel::before{content:"";position:absolute;inset-inline:0;top:0;height:4px;pointer-events:none;opacity:.9;
  border-start-start-radius:14px;border-start-end-radius:14px;
  background:repeating-linear-gradient(90deg,var(--ksfx-red) 0 7px,var(--ksfx-white) 7px 14px)}
/* C2 下拉项 / 勾选框 / 箭头：只做过渡，交互反馈统一在 list_interaction()（F5/F6 约束） */
body.pop-theme .ks-opt{transition:transform .18s var(--pop-ease),background-color .18s var(--pop-ease)}
body.pop-theme .ks-opt__box{transition:transform .2s var(--pop-spring)}
/* ⚠️ 箭头是 `▾` 文本节点：`display:inline` 时 transform 不生效 → 显式 inline-block
   （在 flex 项里它本来就被 blockify，这条只是保证非 flex 语境下也成立；display 不属交互规则，F5 不管） */
body.pop-theme .ks-dd__caret{display:inline-block;transition:transform .24s var(--pop-spring)}
body.pop-theme .ks-dd.is-open .ks-dd__caret{transform:rotate(180deg)}
/* C2 排序控件 + 手机筛选按钮 */
body.pop-theme .ks-sort{transition:transform .2s var(--pop-ease),box-shadow .2s var(--pop-ease)}
body.pop-theme .ks-mobile__btn{position:relative;transition:transform .2s var(--pop-ease)}
body.pop-theme .ks-mobile__btn::after{content:"";position:absolute;inset-inline-end:-4px;top:-6px;width:15px;height:15px;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-milk_carton);background-repeat:no-repeat;background-size:contain;transform:rotate(-10deg)}
/* C4 分页（/products/ 专属的 .ks-page 按钮）：右上角一枚挂件（slots 的 list_page 族，周期 5） */
body.pop-theme .ks-page{position:relative}
body.pop-theme .ks-page::before{content:"";position:absolute;inset-inline-end:-3px;top:-6px;width:15px;height:15px;pointer-events:none;opacity:.95;
  background-repeat:no-repeat;background-size:contain;transform:rotate(-8deg)}
/* C4 当前页：**拐杖糖条纹**（渐变 → 零形状预算）压在按钮下沿
   2026-10-13 视觉巡检：原 `inset-inline:0` 让条纹两端被按钮圆角切掉 → 像溢出破图；
   收到中段（inset-inline:9px）成一条整齐的拐杖糖下划线。 */
body.pop-theme .ks-page.is-active::after{content:"";position:absolute;inset-inline:9px;bottom:3px;height:5px;pointer-events:none;border-radius:3px;
  background:repeating-linear-gradient(115deg,var(--ksfx-red) 0 6px,var(--ksfx-white) 6px 12px)}
/* C4 分类页 / 博客页的当前页码（两种载体：分类 ul>li / 博客 .nav-links）——同款拐杖糖条纹
   2026-10-13：同样收到中段，避免两端被圆角切掉 */
body.pop-theme .pop-pagination .page-numbers.current,
body.pop-theme .nav-links .page-numbers.current{position:relative}
body.pop-theme .pop-pagination .page-numbers.current::after,
body.pop-theme .nav-links .page-numbers.current::after{content:"";position:absolute;inset-inline:9px;bottom:3px;height:5px;pointer-events:none;border-radius:3px;
  background:repeating-linear-gradient(115deg,var(--ksfx-red) 0 6px,var(--ksfx-white) 6px 12px)}
/* C4 下一页箭头旁落雪：**2026-10-13 视觉巡检已撤除** —— 13×13 的白色雪点落在 42px 按钮右上角，
   1x 下读起来是「噪点/脏点」而不是落雪（放大 4 倍才看得出是雪）。分页是功能控件，保持干净。
   三条原规则（.ks-page-next / .pop-pagination .next / .nav-links .next 的 ::after）连同深色段的
   opacity 覆盖一起删掉。 */
/* C5 空状态：卡片顶沿松枝串 + 右上角雪橇（只有筛到 0 条才登场） */
body.pop-theme .ks-empty__card{position:relative}
body.pop-theme .ks-empty__card::before{content:"";position:absolute;inset-inline:0;top:0;height:14px;pointer-events:none;opacity:.9;
  border-start-start-radius:20px;border-start-end-radius:20px;
  background-image:var(--ksfx-m-stick_band);background-repeat:repeat-x;background-size:104px 14px}
body.pop-theme .ks-empty__card::after{content:"";position:absolute;inset-inline-end:14px;top:7px;width:30px;height:30px;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-milk_carton);background-repeat:no-repeat;background-size:contain;transform:rotate(-8deg)}
/* C5 空状态的两个出口按钮：只做过渡，反馈在 list_interaction() */
body.pop-theme .ks-empty__clear,body.pop-theme .ks-empty__contact{transition:transform .2s var(--pop-ease)}
/* C2 筛选抽屉（手机）：顶沿同款缎带（同样用**渐变**不用画稿 —— 理由见上面板那条；
   ⚠️ 抽屉默认 display:none，但普查只跳过伪元素自身的 display:none → 隐藏元素上的挂件照样计数） */
body.pop-theme .ks-drawer__head{position:relative}
body.pop-theme .ks-drawer__head::after{content:"";position:absolute;inset-inline:0;bottom:-7px;height:4px;pointer-events:none;opacity:.85;
  background:repeating-linear-gradient(90deg,var(--ksfx-red) 0 7px,var(--ksfx-white) 7px 14px)}
/* ====== 批次 4 · 产品页（FXOPT · D1-D7）====== */
/* D1 主图右下角：和纸胶带（画稿由 slots 的 prod_main 族给，池长 1 = 恒定）。
   `overflow:hidden` 会把负偏移裁掉 —— 正是"胶带压边"该有的样子。 */
body.pop-theme .pop-product__main::after{content:"";position:absolute;inset-inline-end:-14px;bottom:18px;width:78px;height:22px;pointer-events:none;opacity:.95;
  background-repeat:no-repeat;background-size:contain}
/* D1b lightbox 底部雪堆（**渐变条带** → 零形状预算）：只有真打开时才画（`[hidden]` 时不渲染） */
body.pop-theme .pop-zoom::before{content:"";position:absolute;inset-inline:0;bottom:0;height:46px;pointer-events:none;opacity:.5;
  background-image:var(--ksfx-m-ribbon_wave);background-repeat:repeat-x;background-size:170px 46px}
/* D2 缩略图条顶沿和纸带（**渐变**，零形状预算） */
body.pop-theme .pop-product__thumbs{position:relative}
body.pop-theme .pop-product__thumbs::before{content:"";position:absolute;inset-inline-start:2px;top:-8px;width:118px;height:9px;pointer-events:none;opacity:.5;
  border-radius:2px;transform:rotate(-2.5deg);
  background:repeating-linear-gradient(115deg,var(--ksfx-green-deep) 0 10px,var(--ksfx-white) 10px 20px)}
/* D2 选中缩略图：底沿拐杖糖条纹（渐变）+ 右上角小挂件（slots 的 prod_thumb_item 族）
   ⚠️ 按钮 `overflow:hidden` → 挂件必须留在盒内（`inset-inline-end:3px;top:3px`） */
body.pop-theme .pop-product__thumbs button.is-active{position:relative}
body.pop-theme .pop-product__thumbs button.is-active::before{content:"";position:absolute;inset-inline:7px;bottom:5px;height:4px;pointer-events:none;opacity:.9;
  border-radius:3px;background:repeating-linear-gradient(115deg,var(--ksfx-red) 0 5px,var(--ksfx-white) 5px 10px)}
body.pop-theme .pop-product__thumbs button.is-active::after{content:"";position:absolute;inset-inline-end:3px;top:3px;width:15px;height:15px;pointer-events:none;opacity:.95;
  background-repeat:no-repeat;background-size:contain}
/* D3 箱规行（"Sold by carton · 96 pieces/carton"）右端小姜饼人：
   元素 static → 同块补 relative（S5 成对）；花饰挂**盒外**（父级 overflow 可见），不占元素宽度、零位移 */
body.pop-theme .pop-carton-note{position:relative}
body.pop-theme .pop-carton-note::after{content:"";position:absolute;inset-inline-end:-24px;top:50%;width:17px;height:17px;margin-top:-9px;pointer-events:none;opacity:.92;
  background-repeat:no-repeat;background-size:contain}
/* D4 询盘卡（`.pop-wholesale`）：角上一枚花环（slots 的 prod_wholesale 族）+ 卡内 CTA 的过渡。
   ⚠️ 这枚才是"可见的 CTA 装饰"（加购键 0×0，见函数说明） */
body.pop-theme .pop-wholesale{position:relative}
body.pop-theme .pop-wholesale::after{content:"";position:absolute;inset-inline-end:18px;bottom:14px;width:30px;height:30px;pointer-events:none;opacity:.95;
  background-repeat:no-repeat;background-size:contain}
body.pop-theme .pop-wholesale .pop-btn--primary{transition:transform .2s var(--pop-ease)}
/* D4b WhatsApp 行：右上角小铃铛（slots 的 prod_wa 族）。父级 `.pop-product__actions` overflow 可见 → 可挂盒外 */
body.pop-theme .pop-product__wa{position:relative}
body.pop-theme .pop-product__wa::after{content:"";position:absolute;inset-inline-end:-8px;top:-14px;width:16px;height:16px;pointer-events:none;opacity:.95;
  background-repeat:no-repeat;background-size:contain;transform-origin:50% 6%}
/* D5 页签条顶沿和纸带（渐变）+ 激活页签底沿拐杖糖条纹（渐变）。
   产品页实测只有 1 个页签 → 不做"切换"动效，只做静态纸带与激活态标记 */
body.pop-theme .woocommerce-tabs ul.tabs{position:relative}
body.pop-theme .woocommerce-tabs ul.tabs::before{content:"";position:absolute;inset-inline-start:2px;top:-9px;width:132px;height:10px;pointer-events:none;opacity:.5;
  border-radius:2px;transform:rotate(-2deg);
  background:repeating-linear-gradient(115deg,var(--ksfx-green-deep) 0 10px,var(--ksfx-white) 10px 20px)}
body.pop-theme .woocommerce-tabs ul.tabs li a{transition:transform .2s var(--pop-ease)}
body.pop-theme .woocommerce-tabs ul.tabs li.active a{position:relative}
body.pop-theme .woocommerce-tabs ul.tabs li.active a::after{content:"";position:absolute;inset-inline:10px;bottom:5px;height:4px;pointer-events:none;opacity:.9;
  border-radius:3px;background:repeating-linear-gradient(115deg,var(--ksfx-red) 0 5px,var(--ksfx-white) 5px 10px)}
/* D7 相关产品标题右侧花饰（slots 的 prod_related_h2 族）
   ⚠️ 手机横向溢出纪律：挂标题盒**内缘**（批次 2 挂外侧在 360-600px 顶出过 9px） */
body.pop-theme .related.products h2{position:relative}
body.pop-theme .related.products h2::after{content:"";position:absolute;inset-inline-end:6px;top:50%;width:22px;height:22px;margin-top:-11px;pointer-events:none;opacity:.95;
  background-repeat:no-repeat;background-size:contain}
/* ====== T2 商品卡 ====== */
body.pop-theme .pop-card{position:relative;border:2px solid var(--pop-ink);border-radius:18px;background:var(--ksfx-white);box-shadow:0 4px 0 var(--pop-ink)}
body.pop-theme .pop-card__media{position:relative;border-bottom:2px solid var(--pop-ink);border-radius:15px 15px 0 0;overflow:hidden;
  background-image:var(--ksfx-m-cocoa_grid),linear-gradient(180deg,var(--ksfx-tint-1),var(--ksfx-tint-2));background-repeat:repeat,no-repeat;background-size:24px 24px,auto}
body.pop-theme li.product .pop-card__media::before{content:"";position:absolute;inset-inline-start:-8px;top:-8px;width:44px;height:44px;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-choco_bowl);background-repeat:no-repeat;background-size:contain;transform:rotate(-8deg)}
/* ⚠️ 首页货架卡（`div.pop-shelf > a.pop-card`）的**基规则**——2026-10-11 FXOPT 批次 2 修的真缺陷：
   原先这条基规则只写 `li.product`，而首页卡片是 `a.pop-card` → 相位规则（8n+1..8n+8）虽然命中了，
   却没有 `content`/尺寸 → 伪元素根本不渲染 → **首页 8 张卡实际只有 1 个母题**（价格行），
   而 FXFULL 的静态门禁（check_card_fill.py）看不出来，是 census_shapes 逐位子真浏览器普查才发现的。
   这里**刻意不写 `background-image`**：① 8 个相位已全覆盖 8 张卡，不需要兜底默认形状；
   ② 不带 `var(--ksfx-m-*)` 的规则不会被 check_pack 认成新的「基位子族」→ 不产生幻影族（否则报 G1 无轮换）。 */
body.pop-theme .pop-shelf > a.pop-card .pop-card__media::before{content:"";position:absolute;inset-inline-start:-8px;top:-8px;width:44px;height:44px;pointer-events:none;opacity:.95;
  background-repeat:no-repeat;background-size:contain}
/* 商品卡图片角原有的 3n+2 / 3n 相位已交给配方 slots 统一管理 */
/* ⚠️ 卡角胶带（tape）**已下线**：它是「静态单形状 × 32 张卡」= 一页 32 次，正是重复主因之一。
   卡面装饰改由配方 slots 的两个**相位全满**族负责（图片角 8 相位 + 价格行 7 相位）
   → 每张卡恒定 2 个母题、相邻卡不同、32 张卡内组合不重复。 */
body.pop-theme .pop-card__carton{display:flex;align-items:center;gap:6px;font-weight:700}
/* ⚠️ 箱规行的固定小图标（cane）已下线：30 张卡 = 一页 30 次同一个形状（重复主因）。
   卡的第二个母题统一由「价格行」轮换族给（32/32 张卡都有价格行，比箱规行更全覆盖）。 */
body.pop-theme .pop-card__price-row{position:relative;display:flex;align-items:center;gap:5px}
body.pop-theme .pop-card__price-row::before{content:"";flex:0 0 auto;width:13px;height:13px;
  background-image:var(--ksfx-m-ball);background-repeat:no-repeat;background-size:contain}
body.pop-theme .pop-card__price{color:var(--ksfx-red)}

/* ====== T2 列表页控件（/products/） ====== */
body.pop-theme .ks-filters__label{font-weight:800}
/* FXFULL 新增落点：筛选条（/products/ 控件区原来 0 装饰）——单例，用和纸胶带 */
body.pop-theme .ks-filters{position:relative}
body.pop-theme .ks-filters::before{content:"";position:absolute;inset-inline-start:-4px;top:-15px;width:62px;height:22px;pointer-events:none;opacity:.92;
  background-image:var(--ksfx-m-tape2);background-repeat:no-repeat;background-size:contain;transform:rotate(-6deg)}
body.pop-theme .ks-dd__btn{border:2px solid var(--pop-ink);border-radius:12px;background:var(--ksfx-white);box-shadow:0 3px 0 var(--pop-ink);font-weight:700}
body.pop-theme .ks-opt{position:relative}
body.pop-theme .ks-opt.is-on .ks-opt__box{border:2px solid var(--ksfx-green);background-color:var(--ksfx-band-bg);color:var(--ksfx-band-fg);background-image:var(--ksfx-m-crumb_dots),linear-gradient(180deg,var(--ksfx-band-bg),var(--ksfx-band-2));background-repeat:repeat,no-repeat;background-size:220px 220px,auto}
body.pop-theme .page-numbers{display:inline-flex;align-items:center;justify-content:center;position:relative;min-width:42px;height:42px;padding:0 10px;
  border:2px solid var(--pop-ink);border-radius:13px;background:var(--ksfx-white);box-shadow:0 3px 0 var(--pop-ink);font-weight:800;color:var(--pop-ink)}
/* 页码角标：**2026-10-13 视觉巡检已撤除** —— 11×11 / opacity .55 的和纸胶带落在 42px 按钮左上角，
   1x 下读起来是「污渍」而不是胶带（放大 4 倍才认得出）。分页保持干净，只留当前页那条拐杖糖下划线。
   基规则删掉后，配方 slots 的分页族（.page-numbers::before / .current::before 亮片）自然不再出图，
   m-tape / m-sparkle 两个母题在别处仍有引用（筛选条 / 商品卡价签），不会触发「纹样零冗余」门禁。 */
body.pop-theme .page-numbers.current{background:var(--ksfx-green);color:var(--ksfx-onstrip);border-color:var(--pop-ink)}
body.pop-theme .rank-math-breadcrumb,
body.pop-theme .rank-math-breadcrumb a{color:var(--pop-ink)}
body.pop-theme .rank-math-breadcrumb a{font-weight:700;text-decoration:underline;text-decoration-color:var(--ksfx-red);text-underline-offset:3px}
/* ====== T2 产品页 ====== */
body.pop-theme .pop-product__main{position:relative;border:2px solid var(--pop-ink);border-radius:20px;background:var(--ksfx-white);box-shadow:0 5px 0 var(--pop-ink)}
body.pop-theme .pop-product__main::before{content:"";position:absolute;inset-inline-start:-10px;top:-12px;width:56px;height:56px;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-choco_bowl);background-repeat:no-repeat;background-size:contain;transform:rotate(-10deg);z-index:3}
body.pop-theme .pop-carton-note{position:relative;padding-inline-start:32px;border:2px solid var(--pop-ink);border-radius:14px;box-shadow:0 3px 0 var(--pop-ink);
  background-image:var(--ksfx-m-cocoa_grid),linear-gradient(180deg,var(--ksfx-tint-1),var(--ksfx-tint-2));background-repeat:repeat,no-repeat;background-size:22px 22px,auto}
body.pop-theme .pop-carton-note::before{content:"";position:absolute;inset-inline-start:10px;top:50%;width:16px;height:16px;margin-top:-8px;
  background-image:var(--ksfx-m-pepero);background-repeat:no-repeat;background-size:contain}
body.pop-theme .pop-price-unit{color:var(--ksfx-green-deep);font-weight:800}
body.pop-theme .single_add_to_cart_button{position:relative;border:2px solid var(--pop-ink)!important;box-shadow:0 3px 0 var(--pop-ink)!important;font-weight:800}
body.pop-theme .single_add_to_cart_button::after{content:"";position:absolute;inset-inline-end:6px;top:-10px;width:22px;height:22px;
  background-image:var(--ksfx-m-balloon);background-repeat:no-repeat;background-size:contain;transform:rotate(12deg)}
body.pop-theme .bj-spec-wrap{position:relative;border:2px solid var(--pop-ink);border-radius:18px;box-shadow:0 5px 0 var(--pop-ink);background:var(--ksfx-white);overflow:hidden}
body.pop-theme .bj-spec-wrap::before{content:"";position:absolute;inset-inline-end:12px;top:-10px;width:46px;height:46px;pointer-events:none;z-index:9;
  background-image:var(--ksfx-m-sunny);background-repeat:no-repeat;background-size:contain;transform:rotate(6deg)}
body.pop-theme .bj-spec-wrap table{width:100%}
body.pop-theme .bj-spec-wrap th{background:var(--ksfx-green-deep)!important;color:var(--ksfx-white)!important;font-weight:800!important;
  border-bottom:2px solid var(--pop-ink)!important;padding:11px 14px!important}
/* FXFULL 新增落点：规格表**行首**（老缺口 = 「规格表 0 规则」）。基规则只给几何，
   形状由配方 slots 的 `.bj-spec-wrap th` 族按**行序号**轮换（11 行 / 周期 3 → 每形状 4 次，≤5 预算内）。 */
/* 2026-10-13 视觉巡检：主题的 `.single-product #tab-description th{padding:13px 20px!important}`（特异性 1,1,1）
   压过上面这条（0,2,2）→ 36px 预留失效，行首那枚 15px 贴纸直接压在标签首字上（"⭐KU"、"Pieces per ⚙Carton"）。
   ⚠️ `single-product` 这个类是挂在 **body 自己**身上的（不是后代元素）→ 必须写成 `body.pop-theme.single-product`，
   中间不能有空格（写成 `body.pop-theme .single-product` 永不命中，实测踩过）。 */
body.pop-theme.single-product #tab-description .bj-spec-wrap th{position:relative;padding-inline-start:36px!important}
body.pop-theme .bj-spec-wrap tr th::before{content:"";position:absolute;inset-inline-start:13px;top:50%;width:15px;height:15px;margin-top:-8px;pointer-events:none;opacity:.92;
  background-image:var(--ksfx-m-ball);background-repeat:no-repeat;background-size:contain}
body.pop-theme .bj-spec-wrap td{border-bottom:1px solid var(--pop-line)!important;padding:10px 14px!important}
body.pop-theme .bj-spec-wrap tr:nth-child(odd) td{background:var(--ksfx-row)!important}
body.pop-theme .woocommerce-tabs{position:relative}
/* ⚠️ 原来钉在 #tab-description h2 上（产品页 3 个 tab 标题 → 同一形状 3 次）→ 收到 tabs 容器角上（1 个位子，不存在重复） */
body.pop-theme .woocommerce-tabs::before{content:"";position:absolute;inset-inline-start:-6px;top:-14px;width:30px;height:30px;pointer-events:none;opacity:.92;
  background-image:var(--ksfx-m-card_gift);background-repeat:no-repeat;background-size:contain;transform:rotate(-6deg)}
body.pop-theme .related.products{position:relative;padding-top:26px}
body.pop-theme .related.products::before{content:"";position:absolute;inset-inline-start:0;top:0;width:30px;height:30px;pointer-events:none;
  background-image:var(--ksfx-m-gift_bag);background-repeat:no-repeat;background-size:contain}
/* ====== T2 正文（文章页） ====== */
body.pop-theme .pop-prose{color:var(--pop-ink)}
body.pop-theme .pop-prose h2{position:relative;padding-inline-start:34px}
body.pop-theme .pop-prose h2::before{content:"";position:absolute;inset-inline-start:0;top:.18em;width:25px;height:25px;
  background-image:var(--ksfx-m-card_gift);background-repeat:no-repeat;background-size:contain}
body.pop-theme .pop-prose h3{position:relative;padding-inline-start:24px}
body.pop-theme .pop-prose h3::before{content:"";position:absolute;inset-inline-start:0;top:.32em;width:18px;height:18px;
  background-image:var(--ksfx-m-pepero_pair);background-repeat:no-repeat;background-size:contain}
body.pop-theme .pop-prose img{border:2px solid var(--pop-ink);border-radius:16px;box-shadow:0 5px 0 var(--pop-ink);background:var(--ksfx-white)}
body.pop-theme .pop-prose figure{position:relative}
body.pop-theme .pop-prose figure::after{content:"";position:absolute;inset-inline-end:-6px;top:-10px;width:38px;height:38px;pointer-events:none;opacity:.9;
  background-image:var(--ksfx-m-choco_bowl);background-repeat:no-repeat;background-size:contain;transform:rotate(8deg)}
body.pop-theme .pop-prose blockquote{position:relative;margin:1.4em 0;padding:18px 20px 18px 60px;border:2px solid var(--pop-ink);border-radius:16px;
  box-shadow:0 4px 0 var(--pop-ink);background-image:var(--ksfx-m-cocoa_grid),linear-gradient(180deg,var(--ksfx-tint-1),var(--ksfx-tint-2));background-repeat:repeat,no-repeat;background-size:22px 22px,auto}
body.pop-theme .pop-prose blockquote::after{content:"";position:absolute;inset-inline-start:14px;top:16px;width:34px;height:34px;
  background-image:var(--ksfx-m-pepero_box);background-repeat:no-repeat;background-size:contain}
body.pop-theme .pop-prose ul{list-style:none;padding-inline-start:0}
body.pop-theme .pop-prose ul li{position:relative;padding-inline-start:22px}
body.pop-theme .pop-prose ul li::before{content:"";position:absolute;inset-inline-start:2px;top:.55em;width:12px;height:12px;
  background-image:var(--ksfx-m-butterfly);background-repeat:no-repeat;background-size:contain}
body.pop-theme .pop-prose ol{list-style:none;counter-reset:ksx;padding-inline-start:0}
body.pop-theme .pop-prose ol li{position:relative;padding-inline-start:32px;counter-increment:ksx}
body.pop-theme .pop-prose ol li::before{content:counter(ksx);position:absolute;inset-inline-start:0;top:.25em;width:22px;height:22px;
  border:2px solid var(--pop-ink);border-radius:50%;background:var(--ksfx-gold-soft);font-size:12px;font-weight:800;line-height:18px;text-align:center;color:var(--pop-ink)}
body.pop-theme .pop-prose table{border:2px solid var(--pop-ink);border-radius:14px;overflow:hidden;background:var(--ksfx-white)}
body.pop-theme .pop-prose table th{background:var(--ksfx-green-deep)!important;color:var(--ksfx-white)!important;border-bottom:2px solid var(--pop-ink)!important;padding:9px 12px!important}
body.pop-theme .pop-prose table td{border-bottom:1px solid var(--pop-line)!important;padding:8px 12px!important}
body.pop-theme .pop-prose table tr:nth-child(even) td{background:var(--ksfx-row)!important}
body.pop-theme .pop-authorbio{position:relative;border:2px solid var(--pop-ink);border-radius:16px;box-shadow:0 4px 0 var(--pop-ink);padding:18px 20px;
  background-image:var(--ksfx-m-cocoa_grid),linear-gradient(180deg,var(--ksfx-tint-1),var(--ksfx-tint-2));background-repeat:repeat,no-repeat;background-size:22px 22px,auto}
body.pop-theme .pop-authorbio::before{content:"";position:absolute;inset-inline-end:14px;top:-14px;width:40px;height:40px;pointer-events:none;
  background-image:var(--ksfx-m-choco_bar);background-repeat:no-repeat;background-size:contain;transform:rotate(8deg)}

/* ====== T2 博客列表 ====== */
body.pop-theme .bjb-card{position:relative;border:2px solid var(--pop-ink);border-radius:18px;background:var(--ksfx-white);box-shadow:0 4px 0 var(--pop-ink);overflow:hidden}
body.pop-theme .bjb-card::after{content:"";position:absolute;inset-inline-start:-6px;top:-6px;width:38px;height:38px;pointer-events:none;opacity:.9;
  background-image:var(--ksfx-m-pepero_pair);background-repeat:no-repeat;background-size:contain;transform:rotate(-10deg)}
body.pop-theme .bjb-hero{position:relative;border:2px solid var(--pop-ink);border-radius:20px;box-shadow:0 5px 0 var(--pop-ink);
  background-image:var(--ksfx-m-cocoa_grid),linear-gradient(180deg,var(--ksfx-tint-1),var(--ksfx-tint-2));background-repeat:repeat,no-repeat;background-size:24px 24px,auto}
body.pop-theme .bjb-hero::after{content:"";position:absolute;inset-inline-end:16px;top:12px;width:48px;height:48px;pointer-events:none;opacity:.9;
  background-image:var(--ksfx-m-crumb_dot);background-repeat:no-repeat;background-size:contain}
body.pop-theme .bjb-fbtn{border:2px solid var(--pop-ink);border-radius:999px;background:var(--ksfx-white);box-shadow:0 3px 0 var(--pop-ink);font-weight:800;color:var(--pop-ink)}
body.pop-theme .bjb-fbtn.on{background:var(--ksfx-green);color:var(--ksfx-onstrip)}
body.pop-theme .bjb-stats{position:relative;border-radius:14px}
/* FXFULL 新增落点：博客统计条（原来只有圆角、0 装饰）——单例，静态一支蜡烛 */
body.pop-theme .bjb-stats::before{content:"";position:absolute;inset-inline-end:14px;top:-12px;width:34px;height:34px;pointer-events:none;opacity:.9;
  background-image:var(--ksfx-m-cloud);background-repeat:no-repeat;background-size:contain;transform:rotate(6deg)}
/* ====== T2 按钮 / 表单 / FAQ ====== */
body.pop-theme .pop-btn{position:relative;border:2px solid var(--pop-ink);border-radius:14px;box-shadow:0 3px 0 var(--pop-ink);font-weight:800}
body.pop-theme .pop-btn--primary::after{content:"";position:absolute;inset-inline-end:6px;top:-10px;width:22px;height:22px;pointer-events:none;
  background-image:var(--ksfx-m-balloon);background-repeat:no-repeat;background-size:contain;transform:rotate(12deg)}
body.pop-theme .pop-faq details{border:2px solid var(--pop-ink);border-radius:16px;background:var(--ksfx-white);box-shadow:0 4px 0 var(--pop-ink);margin-bottom:14px;overflow:hidden}
body.pop-theme .pop-faq details[open]{background-image:var(--ksfx-m-cocoa_grid),linear-gradient(180deg,var(--ksfx-tint-1),var(--ksfx-tint-2));background-repeat:repeat,no-repeat;background-size:22px 22px,auto}
body.pop-theme .pop-faq details>summary{position:relative;padding-inline-start:36px!important;font-weight:800}
body.pop-theme .pop-faq details>summary::before{content:"";position:absolute;inset-inline-start:12px;top:50%;width:16px;height:16px;margin-top:-8px;
  background-image:var(--ksfx-m-sparkle);background-repeat:no-repeat;background-size:contain}
body.pop-theme .bj-quote__form{position:relative;border:2px solid var(--pop-ink);border-radius:20px;box-shadow:0 5px 0 var(--pop-ink);
  background-image:var(--ksfx-m-crumb_dots),linear-gradient(180deg,var(--ksfx-tint-1),var(--ksfx-surface));background-repeat:repeat,no-repeat;background-size:240px 240px,auto}
body.pop-theme .bj-quote__form::before{content:"";position:absolute;inset-inline-end:16px;top:-16px;width:44px;height:44px;pointer-events:none;
  background-image:var(--ksfx-m-balloon);background-repeat:no-repeat;background-size:contain;transform:rotate(10deg)}
body.pop-theme .bj-quote__carton-note{position:relative;border:2px solid var(--pop-ink);border-radius:12px;box-shadow:0 3px 0 var(--pop-ink);
  background-image:var(--ksfx-m-cocoa_grid),linear-gradient(180deg,var(--ksfx-tint-1),var(--ksfx-tint-2));background-repeat:repeat,no-repeat;background-size:22px 22px,auto}
body.pop-theme .bj-quote__submit{border:2px solid var(--pop-ink)!important;box-shadow:0 3px 0 var(--pop-ink)!important;font-weight:800}
body.pop-theme .bj-quote__form input:focus,body.pop-theme .bj-quote__form textarea:focus,body.pop-theme .bj-quote__form select:focus{border-color:var(--ksfx-green);box-shadow:0 0 0 3px var(--ksfx-focus-ring)}
body.pop-theme .pop-footer__news-form{border-radius:14px}
/* ====== 批次 5 · 博客 / 文章 / 搜索 / 静态页 / 浮动件（FXOPT）====== */
/* --- 7 个新位子的基规则（几何 + 兜底纹样；相位规则由 rotation_css 覆盖 background-image/transform）--- */
body.pop-theme .bjb-stats span{position:relative;transition:transform .16s ease,box-shadow .16s ease}
body.pop-theme .bjb-stats span::before{content:"";position:absolute;inset-inline-start:-7px;top:-9px;width:21px;height:21px;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-milk_carton);background-repeat:no-repeat;background-size:contain;transform:rotate(-8deg)}
body.pop-theme .bjb-cover{position:relative}
body.pop-theme .bjb-cover::before{content:"";position:absolute;inset-inline-end:8px;top:8px;width:32px;height:32px;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-ball);background-repeat:no-repeat;background-size:contain}
body.pop-theme .bj-toc{position:relative;border:2px solid var(--pop-ink);border-radius:16px;box-shadow:0 4px 0 var(--pop-ink);
  background:var(--ksfx-white);background-image:var(--ksfx-m-cocoa_grid),linear-gradient(180deg,var(--ksfx-tint-1),var(--ksfx-tint-2));
  background-repeat:repeat,no-repeat;background-size:22px 22px,auto}
body.pop-theme .bj-toc::before{content:"";position:absolute;inset-inline:0;top:-3px;height:14px;pointer-events:none;opacity:.55;
  background-image:var(--ksfx-m-stick_band);background-repeat:repeat-x;background-size:130px 14px}
body.pop-theme .bj-toc a{font-weight:700}
body.pop-theme .bj-toc li{position:relative}
body.pop-theme .bj-toc ol li::before{content:"";position:absolute;inset-inline-start:-19px;top:5px;width:15px;height:15px;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-crumb_dot);background-repeat:no-repeat;background-size:contain}
body.pop-theme .faq-item{position:relative;margin:10px 0;padding:14px 18px;border:2px solid var(--pop-ink);border-radius:14px;box-shadow:0 3px 0 var(--pop-ink);
  background:var(--ksfx-white);background-image:var(--ksfx-m-crumb_dots),linear-gradient(180deg,var(--ksfx-tint-1),var(--ksfx-tint-2));
  background-repeat:repeat,no-repeat;background-size:20px 20px,auto;transition:transform .18s ease,box-shadow .18s ease}
body.pop-theme .faq-item h3{margin:0 0 6px}
body.pop-theme .faq-item p{margin:0}
/* --- 搜索页：结果段 + 两种卡 --- */
body.pop-theme .pop-result-sec__head{position:relative;border-bottom:2px solid var(--pop-ink);padding-bottom:8px}
body.pop-theme .pop-result-sec__head::after{content:"";position:absolute;inset-inline-end:2px;top:-10px;width:32px;height:32px;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-crumb_dot);background-repeat:no-repeat;background-size:contain}
body.pop-theme .pop-result-sec__count{background:var(--ksfx-white);border:2px solid var(--pop-ink);border-radius:999px;box-shadow:0 2px 0 var(--pop-ink);font-weight:800}
body.pop-theme .pop-pcard,body.pop-theme .pop-bcard{position:relative;border:2px solid var(--pop-ink);border-radius:16px;box-shadow:0 4px 0 var(--pop-ink);
  background:var(--ksfx-white);transition:transform .18s ease,box-shadow .18s ease}
body.pop-theme .pop-pcard__media{position:relative}
body.pop-theme .pop-pcard__media::before{content:"";position:absolute;inset-inline-start:9px;top:9px;width:30px;height:30px;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-pepero_box);background-repeat:no-repeat;background-size:contain}
body.pop-theme .pop-bcard__media{position:relative}
body.pop-theme .pop-bcard__media::after{content:"";position:absolute;inset-inline-end:7px;top:7px;width:26px;height:26px;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-choco_bar);background-repeat:no-repeat;background-size:contain}
body.pop-theme .pop-pcard__media,body.pop-theme .pop-bcard__media{
  background-image:var(--ksfx-m-crumb_dots),linear-gradient(180deg,var(--ksfx-tint-1),var(--ksfx-tint-2));
  background-repeat:repeat,no-repeat;background-size:20px 20px,auto}
body.pop-theme .pop-pcard__price{color:var(--ksfx-green)}
/* --- 静态页正文（about / faq / contact）：标题位子 + 列表材质 --- */
body.pop-theme .pop-page-editor-content h2{position:relative;padding-inline-start:36px}
body.pop-theme .pop-page-editor-content h2::before{content:"";position:absolute;inset-inline-start:0;top:.04em;width:26px;height:26px;pointer-events:none;
  background-image:var(--ksfx-m-choco_bowl);background-repeat:no-repeat;background-size:contain}
body.pop-theme .pop-page-editor-content h3{position:relative;padding-inline-start:28px}
body.pop-theme .pop-page-editor-content h3::before{content:"";position:absolute;inset-inline-start:0;top:.2em;width:19px;height:19px;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-water_drop);background-repeat:no-repeat;background-size:contain}
body.pop-theme .pop-page-editor-content ul{list-style:none;padding-inline-start:0}
body.pop-theme .pop-page-editor-content ul li{position:relative;padding-inline-start:24px}
body.pop-theme .pop-page-editor-content ul li::before{content:"";position:absolute;inset-inline-start:3px;top:.62em;width:10px;height:10px;border-radius:3px;
  background:var(--ksfx-green);border:2px solid var(--pop-ink)}
/* --- 询盘表单：国家 combobox（真实类名 .bj-cc*）--- */
body.pop-theme .bj-cc{position:relative}
body.pop-theme .bj-cc__list{background:var(--ksfx-white)!important;border:2px solid var(--pop-ink)!important;border-radius:14px!important;box-shadow:0 5px 0 var(--pop-ink)}
body.pop-theme .bj-cc__list li{padding:7px 12px!important;border-radius:9px!important;font-weight:600}
body.pop-theme .bj-cc__toggle{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;
  border:2px solid var(--pop-ink);border-radius:8px;background:var(--ksfx-white);box-shadow:0 2px 0 var(--pop-ink)}
body.pop-theme .bj-cc:focus-within .bj-cc__toggle{background:var(--ksfx-green)}
/* --- 浮动件：cookie 条 / 退出弹窗 / 手机粘性条 --- */
body.pop-theme #bj-consent{border:2px solid var(--pop-ink)!important;border-radius:18px!important;box-shadow:0 5px 0 var(--pop-ink)!important;
  background:var(--ksfx-white)!important;
  background-image:var(--ksfx-m-crumb_dots),linear-gradient(180deg,var(--ksfx-tint-1),var(--ksfx-tint-2))!important;
  background-repeat:repeat,no-repeat!important;background-size:20px 20px,auto!important}
body.pop-theme #bj-consent::after{content:"";position:absolute;inset-inline-end:12px;top:-13px;width:30px;height:30px;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-water_drop);background-repeat:no-repeat;background-size:contain}
body.pop-theme .bj-consent__btn{border:2px solid var(--pop-ink)!important;box-shadow:0 2px 0 var(--pop-ink)!important;font-weight:800}
body.pop-theme #bj-exit > div{border:2px solid var(--pop-ink);box-shadow:0 6px 0 var(--pop-ink);
  background-image:var(--ksfx-m-cocoa_grid),linear-gradient(180deg,var(--ksfx-tint-1),var(--ksfx-tint-2));
  background-repeat:repeat,no-repeat;background-size:24px 24px,auto}
body.pop-theme #bj-exit > div::after{content:"";position:absolute;inset-inline-end:14px;top:-14px;width:34px;height:34px;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-milk_carton);background-repeat:no-repeat;background-size:contain}
body.pop-theme #bj-exit h3{color:var(--ksfx-red)}
body.pop-theme #bj-exit form button{border:2px solid var(--pop-ink)!important;box-shadow:0 3px 0 var(--pop-ink)!important;font-weight:800}
body.pop-theme #bj-exit-email{border:2px solid var(--pop-ink)!important;background:var(--ksfx-white)!important;color:var(--pop-ink)!important}
body.pop-theme .bjm-sticky{position:fixed;border-top:2px solid var(--pop-ink);box-shadow:0 -3px 0 var(--pop-ink)}
body.pop-theme .bjm-sticky::before{content:"";position:absolute;inset-inline:0;top:-2px;height:10px;pointer-events:none;opacity:.5;
  background-image:var(--ksfx-m-tape2);background-repeat:repeat-x;background-size:110px 10px}
body.pop-theme .bjm-sticky a{transition:transform .16s ease,box-shadow .16s ease}
/* --- 博客列表：筛选条材质 + 轻交互 --- */
body.pop-theme .bjb-filter{position:relative;border:2px solid var(--pop-ink);border-radius:16px;box-shadow:0 4px 0 var(--pop-ink);
  background:var(--ksfx-white);background-image:var(--ksfx-m-cocoa_grid),linear-gradient(180deg,var(--ksfx-tint-1),var(--ksfx-tint-2));
  background-repeat:repeat,no-repeat;background-size:22px 22px,auto}
body.pop-theme .bjb-filter::before{content:"";position:absolute;inset-inline:0;top:-2px;height:12px;pointer-events:none;opacity:.5;
  background-image:var(--ksfx-m-butterfly);background-repeat:repeat-x;background-size:120px 12px}
body.pop-theme .bjb-fbtn,body.pop-theme .page-numbers{transition:transform .16s ease,box-shadow .16s ease}
body.pop-theme .bjb-card{transition:transform .2s ease,box-shadow .2s ease}
/* --- 交互（F6：所有 :hover 一律包进 @media(hover:hover) —— 触摸设备不做"点一下粘住"的假 hover）--- */
@media(hover:hover){
body.pop-theme .bjb-stats span:hover{transform:translateY(-2px);box-shadow:0 4px 0 var(--pop-ink)}
body.pop-theme .bj-toc a:hover{color:var(--ksfx-red)}
body.pop-theme .faq-item:hover{transform:translateY(-2px);box-shadow:0 5px 0 var(--pop-ink)}
body.pop-theme .pop-pcard:hover,body.pop-theme .pop-bcard:hover{transform:translateY(-4px);box-shadow:0 7px 0 var(--pop-ink)}
body.pop-theme .bj-cc__list li:hover,body.pop-theme .bj-cc__list li.is-active{background:var(--ksfx-tint-1)!important}
body.pop-theme .bjb-fbtn:hover,body.pop-theme .page-numbers:hover{transform:translateY(-2px);box-shadow:0 4px 0 var(--pop-ink)}
body.pop-theme .bjb-card:hover{transform:translateY(-4px);box-shadow:0 7px 0 var(--pop-ink)}
body.pop-theme .bjm-sticky a:hover{transform:translateY(-2px);box-shadow:0 3px 0 var(--pop-ink)}
}
/* ===== T2b 位子轮换（配方 slots 驱动：周期=池长，同池内同一纹样只出现一次） ===== */
/*@slot li.product .pop-card__media::before*/
body.pop-theme li.product:nth-child(8n+1) .pop-card__media::before{background-image:var(--ksfx-m-pepero_box);transform:rotate(-10deg);inset-inline-start:-8px;top:-8px}
body.pop-theme li.product:nth-child(8n+2) .pop-card__media::before{background-image:var(--ksfx-m-card_gift);transform:rotate(7deg) scale(.94);inset-inline-start:-8px;top:-8px}
body.pop-theme li.product:nth-child(8n+3) .pop-card__media::before{background-image:var(--ksfx-m-crumb_dot);transform:rotate(12deg) scale(.9);inset-inline-start:auto;inset-inline-end:-7px;top:-8px}
body.pop-theme li.product:nth-child(8n+4) .pop-card__media::before{background-image:var(--ksfx-m-gift_bag);transform:scaleX(-1) rotate(-6deg);inset-inline-start:auto;inset-inline-end:-7px;top:-8px}
body.pop-theme li.product:nth-child(8n+5) .pop-card__media::before{background-image:var(--ksfx-m-sprinkle_stick);transform:rotate(-8deg) scale(.92);inset-inline-start:-8px;top:-8px}
body.pop-theme li.product:nth-child(8n+6) .pop-card__media::before{background-image:var(--ksfx-m-pepero_pair);transform:rotate(9deg);inset-inline-start:auto;inset-inline-end:-7px;top:-8px}
body.pop-theme li.product:nth-child(8n+7) .pop-card__media::before{background-image:var(--ksfx-m-star_gift);transform:rotate(-7deg) scale(.94);inset-inline-start:-8px;top:-8px}
body.pop-theme li.product:nth-child(8n+8) .pop-card__media::before{background-image:var(--ksfx-m-choco_bowl);transform:rotate(6deg);inset-inline-start:auto;inset-inline-end:-7px;top:-8px}
body.pop-theme .pop-shelf > a.pop-card:nth-child(8n+1) .pop-card__media::before{background-image:var(--ksfx-m-pepero_box);transform:rotate(-10deg);inset-inline-start:-8px;top:-8px}
body.pop-theme .pop-shelf > a.pop-card:nth-child(8n+2) .pop-card__media::before{background-image:var(--ksfx-m-card_gift);transform:rotate(7deg) scale(.94);inset-inline-start:-8px;top:-8px}
body.pop-theme .pop-shelf > a.pop-card:nth-child(8n+3) .pop-card__media::before{background-image:var(--ksfx-m-crumb_dot);transform:rotate(12deg) scale(.9);inset-inline-start:auto;inset-inline-end:-7px;top:-8px}
body.pop-theme .pop-shelf > a.pop-card:nth-child(8n+4) .pop-card__media::before{background-image:var(--ksfx-m-gift_bag);transform:scaleX(-1) rotate(-6deg);inset-inline-start:auto;inset-inline-end:-7px;top:-8px}
body.pop-theme .pop-shelf > a.pop-card:nth-child(8n+5) .pop-card__media::before{background-image:var(--ksfx-m-sprinkle_stick);transform:rotate(-8deg) scale(.92);inset-inline-start:-8px;top:-8px}
body.pop-theme .pop-shelf > a.pop-card:nth-child(8n+6) .pop-card__media::before{background-image:var(--ksfx-m-pepero_pair);transform:rotate(9deg);inset-inline-start:auto;inset-inline-end:-7px;top:-8px}
body.pop-theme .pop-shelf > a.pop-card:nth-child(8n+7) .pop-card__media::before{background-image:var(--ksfx-m-star_gift);transform:rotate(-7deg) scale(.94);inset-inline-start:-8px;top:-8px}
body.pop-theme .pop-shelf > a.pop-card:nth-child(8n+8) .pop-card__media::before{background-image:var(--ksfx-m-choco_bowl);transform:rotate(6deg);inset-inline-start:auto;inset-inline-end:-7px;top:-8px}
/*@slot .pop-card__price-row::before*/
body.pop-theme li.product:nth-child(7n+1) .pop-card__price-row::before{background-image:var(--ksfx-m-ball);transform:rotate(-8deg)}
body.pop-theme li.product:nth-child(7n+2) .pop-card__price-row::before{background-image:var(--ksfx-m-pepero_s);transform:rotate(6deg)}
body.pop-theme li.product:nth-child(7n+3) .pop-card__price-row::before{background-image:var(--ksfx-m-bow_small);transform:rotate(-6deg)}
body.pop-theme li.product:nth-child(7n+4) .pop-card__price-row::before{background-image:var(--ksfx-m-sparkle);transform:rotate(5deg)}
body.pop-theme li.product:nth-child(7n+5) .pop-card__price-row::before{background-image:var(--ksfx-m-pinwheel);transform:rotate(-5deg)}
body.pop-theme li.product:nth-child(7n+6) .pop-card__price-row::before{background-image:var(--ksfx-m-fish);transform:rotate(7deg)}
body.pop-theme li.product:nth-child(7n+7) .pop-card__price-row::before{background-image:var(--ksfx-m-butterfly);transform:rotate(-4deg)}
body.pop-theme .pop-shelf > a.pop-card:nth-child(7n+1) .pop-card__price-row::before{background-image:var(--ksfx-m-ball);transform:rotate(-8deg)}
body.pop-theme .pop-shelf > a.pop-card:nth-child(7n+2) .pop-card__price-row::before{background-image:var(--ksfx-m-pepero_s);transform:rotate(6deg)}
body.pop-theme .pop-shelf > a.pop-card:nth-child(7n+3) .pop-card__price-row::before{background-image:var(--ksfx-m-bow_small);transform:rotate(-6deg)}
body.pop-theme .pop-shelf > a.pop-card:nth-child(7n+4) .pop-card__price-row::before{background-image:var(--ksfx-m-sparkle);transform:rotate(5deg)}
body.pop-theme .pop-shelf > a.pop-card:nth-child(7n+5) .pop-card__price-row::before{background-image:var(--ksfx-m-pinwheel);transform:rotate(-5deg)}
body.pop-theme .pop-shelf > a.pop-card:nth-child(7n+6) .pop-card__price-row::before{background-image:var(--ksfx-m-fish);transform:rotate(7deg)}
body.pop-theme .pop-shelf > a.pop-card:nth-child(7n+7) .pop-card__price-row::before{background-image:var(--ksfx-m-butterfly);transform:rotate(-4deg)}
/*@slot .pop-section::before*/
body.pop-theme .pop-section:nth-child(4n+1)::before{background-image:var(--ksfx-m-sunny);transform:rotate(-8deg)}
body.pop-theme .pop-section:nth-child(4n+2)::before{background-image:var(--ksfx-m-cloud);transform:rotate(6deg)}
body.pop-theme .pop-section:nth-child(4n+3)::before{background-image:var(--ksfx-m-choco_bar);transform:rotate(-5deg) scale(.94)}
body.pop-theme .pop-section:nth-child(4n+4)::before{display:none}
/*@slot .pop-head h2::before*/
body.pop-theme .pop-section:nth-child(3n+1) .pop-head h2::before{background-image:var(--ksfx-m-rainbow);transform:rotate(-6deg)}
body.pop-theme .pop-section:nth-child(3n+2) .pop-head h2::before{background-image:var(--ksfx-m-milk_carton);transform:rotate(5deg)}
body.pop-theme .pop-section:nth-child(3n+3) .pop-head h2::before{background-image:var(--ksfx-m-kite);transform:rotate(-4deg) scale(.94)}
/*@slot .pop-cat::before*/
body.pop-theme .pop-cat:nth-child(4n+1)::before{background-image:var(--ksfx-m-bee);transform:rotate(-7deg)}
body.pop-theme .pop-cat:nth-child(4n+2)::before{background-image:var(--ksfx-m-pepero_pair);transform:rotate(6deg)}
body.pop-theme .pop-cat:nth-child(4n+3)::before{background-image:var(--ksfx-m-kite);transform:rotate(-5deg) scale(.94)}
body.pop-theme .pop-cat:nth-child(4n+4)::before{display:none}
/*@slot .pop-faq details>summary::before*/
body.pop-theme .pop-faq details:nth-child(2n+1)>summary::before{background-image:var(--ksfx-m-star_gift);transform:rotate(-10deg)}
body.pop-theme .pop-faq details:nth-child(2n+2)>summary::before{background-image:var(--ksfx-m-ribbon_roll);transform:rotate(7deg)}
/*@slot .page-numbers::before*/
body.pop-theme .pop-pagination li:nth-child(2n+1) > .page-numbers::before{background-image:var(--ksfx-m-tape);transform:rotate(-8deg)}
body.pop-theme .pop-pagination li:nth-child(2n+2) > .page-numbers::before{background-image:var(--ksfx-m-tape2);transform:rotate(5deg)}
body.pop-theme .nav-links > .page-numbers:nth-child(2n+1)::before{background-image:var(--ksfx-m-tape);transform:rotate(-8deg)}
body.pop-theme .nav-links > .page-numbers:nth-child(2n+2)::before{background-image:var(--ksfx-m-tape2);transform:rotate(5deg)}
body.pop-theme .page-numbers:nth-child(2n+1)::before{background-image:var(--ksfx-m-tape);transform:rotate(-8deg)}
body.pop-theme .page-numbers:nth-child(2n+2)::before{background-image:var(--ksfx-m-tape2);transform:rotate(5deg)}
/*@slot .pop-btn--primary::after*/
body.pop-theme .pop-btn--primary:nth-child(2n+1)::after{background-image:var(--ksfx-m-balloon);transform:rotate(14deg)}
body.pop-theme .pop-btn--primary:nth-child(2n+2)::after{background-image:var(--ksfx-m-milk_carton);transform:rotate(-12deg) scale(.96)}
/*@slot .bjb-card::after*/
body.pop-theme .bjb-card:nth-child(3n+1)::after{background-image:var(--ksfx-m-crumb_dot);transform:rotate(-7deg)}
body.pop-theme .bjb-card:nth-child(3n+2)::after{background-image:var(--ksfx-m-pepero_box);transform:rotate(6deg) scale(.94)}
body.pop-theme .bjb-card:nth-child(3n+3)::after{background-image:var(--ksfx-m-pepero_pair);transform:rotate(8deg)}
/*@slot .pop-prose h2::before*/
body.pop-theme .pop-prose h2:nth-child(3n+1)::before{background-image:var(--ksfx-m-sprinkle_stick);transform:rotate(-6deg)}
body.pop-theme .pop-prose h2:nth-child(3n+2)::before{background-image:var(--ksfx-m-rainbow);transform:rotate(5deg)}
body.pop-theme .pop-prose h2:nth-child(3n+3)::before{background-image:var(--ksfx-m-cloud);transform:rotate(-4deg) scale(.94)}
/*@slot .pop-prose h3::before*/
body.pop-theme .pop-page__content > *:nth-child(5n+1) h3::before{background-image:var(--ksfx-m-card_gift);transform:rotate(-5deg)}
body.pop-theme .pop-page__content > *:nth-child(5n+2) h3::before{background-image:var(--ksfx-m-gift_bag);transform:rotate(6deg)}
body.pop-theme .pop-page__content > *:nth-child(5n+3) h3::before{background-image:var(--ksfx-m-pinwheel);transform:rotate(-4deg) scale(.94)}
body.pop-theme .pop-page__content > *:nth-child(5n+4) h3::before{background-image:var(--ksfx-m-ribbon_roll);transform:rotate(5deg) scale(.96)}
body.pop-theme .pop-page__content > *:nth-child(5n+5) h3::before{background-image:var(--ksfx-m-star_gift);transform:rotate(-6deg)}
/*@slot .pop-prose ul li::before*/
body.pop-theme .pop-prose ul li:nth-child(4n+1)::before{background-image:var(--ksfx-m-butterfly);transform:rotate(-6deg)}
body.pop-theme .pop-prose ul li:nth-child(4n+2)::before{display:none}
body.pop-theme .pop-prose ul li:nth-child(4n+3)::before{background-image:var(--ksfx-m-sparkle);transform:rotate(5deg)}
body.pop-theme .pop-prose ul li:nth-child(4n+4)::before{display:none}
/*@slot .pop-prose figure::after*/
body.pop-theme .pop-prose figure:nth-child(2n+1)::after{background-image:var(--ksfx-m-pepero);transform:rotate(-8deg)}
body.pop-theme .pop-prose figure:nth-child(2n+2)::after{background-image:var(--ksfx-m-tape);transform:rotate(9deg)}
/*@slot .bj-spec-wrap tr th::before*/
body.pop-theme .bj-spec-wrap tr:nth-child(3n+1) th::before{background-image:var(--ksfx-m-ball);transform:rotate(-8deg)}
body.pop-theme .bj-spec-wrap tr:nth-child(3n+2) th::before{background-image:var(--ksfx-m-butterfly);transform:rotate(6deg)}
body.pop-theme .bj-spec-wrap tr:nth-child(3n+3) th::before{background-image:var(--ksfx-m-cloud);transform:rotate(-6deg) scale(.94)}
body.pop-theme .bj-spec-wrap th:nth-child(3n+1)::before{background-image:var(--ksfx-m-ball);transform:rotate(-8deg)}
body.pop-theme .bj-spec-wrap th:nth-child(3n+2)::before{background-image:var(--ksfx-m-butterfly);transform:rotate(6deg)}
body.pop-theme .bj-spec-wrap th:nth-child(3n+3)::before{background-image:var(--ksfx-m-cloud);transform:rotate(-6deg) scale(.94)}
/*@slot .pop-cat__media::before*/
body.pop-theme .pop-cat:nth-child(5n+1) .pop-cat__media::before{background-image:var(--ksfx-m-sprinkle_stick);transform:rotate(-7deg) scale(.9);inset-inline-start:-7px;top:-7px}
body.pop-theme .pop-cat:nth-child(5n+2) .pop-cat__media::before{background-image:var(--ksfx-m-gift_bag);transform:rotate(8deg) scale(.92);inset-inline-start:auto;inset-inline-end:-7px;top:-7px}
body.pop-theme .pop-cat:nth-child(5n+3) .pop-cat__media::before{background-image:var(--ksfx-m-crumb_dot);transform:rotate(-9deg);inset-inline-start:-7px;top:-7px}
body.pop-theme .pop-cat:nth-child(5n+4) .pop-cat__media::before{background-image:var(--ksfx-m-card_gift);transform:rotate(7deg) scale(.94);inset-inline-start:auto;inset-inline-end:-7px;top:-7px}
body.pop-theme .pop-cat:nth-child(5n+5) .pop-cat__media::before{background-image:var(--ksfx-m-tape2);transform:rotate(-5deg);inset-inline-start:-7px;top:-7px}
/*@slot .pop-front .pop-section::after*/
body.pop-front .pop-section:nth-child(5n+1)::after{background-image:var(--ksfx-m-tape2);transform:none;height:13px;top:-2px;opacity:.5}
body.pop-front .pop-section:nth-child(5n+2)::after{background-image:var(--ksfx-m-pepero);transform:none;height:11px;top:0;opacity:.45}
body.pop-front .pop-section:nth-child(5n+3)::after{background-image:var(--ksfx-m-sparkle);transform:none;height:10px;top:1px;opacity:.5}
body.pop-front .pop-section:nth-child(5n+4)::after{background-image:var(--ksfx-m-butterfly);transform:none;height:12px;top:-1px;opacity:.45}
body.pop-front .pop-section:nth-child(5n+5)::after{background-image:var(--ksfx-m-fish);transform:none;height:12px;top:-1px;opacity:.42}
/*@slot .pop-front .pop-head h2::after*/
body.pop-front .pop-section:nth-child(5n+1) .pop-head h2::after{background-image:var(--ksfx-m-pepero_box);transform:rotate(-8deg)}
body.pop-front .pop-section:nth-child(5n+2) .pop-head h2::after{background-image:var(--ksfx-m-ribbon_roll);transform:rotate(7deg)}
body.pop-front .pop-section:nth-child(5n+3) .pop-head h2::after{background-image:var(--ksfx-m-sunny);transform:rotate(-6deg)}
body.pop-front .pop-section:nth-child(5n+4) .pop-head h2::after{background-image:var(--ksfx-m-ball);transform:rotate(9deg) scale(.94)}
body.pop-front .pop-section:nth-child(5n+5) .pop-head h2::after{background-image:var(--ksfx-m-rainbow);transform:rotate(-7deg)}
/*@slot .pop-front .bjm-tl__card::before*/
body.pop-front .bjm-tl__step:nth-child(4n+1) .bjm-tl__card::before{background-image:var(--ksfx-m-gift_bag);transform:rotate(-8deg)}
body.pop-front .bjm-tl__step:nth-child(4n+2) .bjm-tl__card::before{background-image:var(--ksfx-m-pepero_pair);transform:rotate(7deg) scale(.94)}
body.pop-front .bjm-tl__step:nth-child(4n+3) .bjm-tl__card::before{background-image:var(--ksfx-m-star_gift);transform:rotate(-6deg)}
body.pop-front .bjm-tl__step:nth-child(4n+4) .bjm-tl__card::before{background-image:var(--ksfx-m-choco_bowl);transform:rotate(8deg)}
/*@slot .ks-filters__bar .ks-dd__btn::before*/
body.pop-theme .ks-filters__bar > .ks-dd:nth-child(7n+1) .ks-dd__btn::before{background-image:var(--ksfx-m-milk_carton);transform:rotate(-9deg)}
body.pop-theme .ks-filters__bar > .ks-dd:nth-child(7n+2) .ks-dd__btn::before{background-image:var(--ksfx-m-bee);transform:rotate(8deg) scale(.94)}
body.pop-theme .ks-filters__bar > .ks-dd:nth-child(7n+3) .ks-dd__btn::before{background-image:var(--ksfx-m-ladybug);transform:rotate(-6deg)}
body.pop-theme .ks-filters__bar > .ks-dd:nth-child(7n+4) .ks-dd__btn::before{background-image:var(--ksfx-m-choco_bar);transform:rotate(-8deg)}
body.pop-theme .ks-filters__bar > .ks-dd:nth-child(7n+5) .ks-dd__btn::before{background-image:var(--ksfx-m-milk_carton);transform:rotate(7deg) scale(.94)}
body.pop-theme .ks-filters__bar > .ks-dd:nth-child(7n+6) .ks-dd__btn::before{background-image:var(--ksfx-m-bee);transform:rotate(-5deg)}
body.pop-theme .ks-filters__bar > .ks-dd:nth-child(7n+7) .ks-dd__btn::before{background-image:var(--ksfx-m-ladybug);transform:rotate(9deg) scale(.92)}
/*@slot .ks-pagination .ks-page::before*/
body.pop-theme .ks-pagination > .ks-page:nth-child(5n+1)::before{background-image:var(--ksfx-m-choco_bar);transform:rotate(-8deg)}
body.pop-theme .ks-pagination > .ks-page:nth-child(5n+2)::before{background-image:var(--ksfx-m-water_drop);transform:rotate(9deg)}
body.pop-theme .ks-pagination > .ks-page:nth-child(5n+3)::before{background-image:var(--ksfx-m-tape);transform:rotate(-6deg)}
body.pop-theme .ks-pagination > .ks-page:nth-child(5n+4)::before{display:none}
body.pop-theme .ks-pagination > .ks-page:nth-child(5n+5)::before{background-image:var(--ksfx-m-kite);transform:rotate(7deg)}
/*@slot .pop-product__main::after*/
body.pop-theme .pop-product__main:nth-child(1n+1)::after{background-image:var(--ksfx-m-tape2);transform:rotate(-6deg)}
/*@slot .pop-product__thumbs button.is-active::after*/
body.pop-theme .pop-product__thumbs button.is-active:nth-child(1n+1)::after{background-image:var(--ksfx-m-choco_bar);transform:rotate(-7deg)}
/*@slot .pop-carton-note::after*/
body.pop-theme .pop-carton-note:nth-child(1n+1)::after{background-image:var(--ksfx-m-pinwheel);transform:rotate(-7deg)}
/*@slot .pop-wholesale::after*/
body.pop-theme .pop-wholesale:nth-child(1n+1)::after{background-image:var(--ksfx-m-choco_bowl);transform:rotate(-8deg)}
/*@slot .pop-product__wa::after*/
body.pop-theme .pop-product__wa:nth-child(1n+1)::after{background-image:var(--ksfx-m-sunny);transform:rotate(8deg)}
/*@slot .related.products h2::after*/
body.pop-theme .related.products h2:nth-child(1n+1)::after{background-image:var(--ksfx-m-kite);transform:rotate(-7deg)}
/*@slot .bjb-stats span::before*/
body.pop-theme .bjb-stats span:nth-child(3n+1)::before{background-image:var(--ksfx-m-milk_carton);transform:rotate(-9deg)}
body.pop-theme .bjb-stats span:nth-child(3n+2)::before{background-image:var(--ksfx-m-bee);transform:rotate(8deg) scale(.94)}
body.pop-theme .bjb-stats span:nth-child(3n+3)::before{background-image:var(--ksfx-m-ladybug);transform:rotate(-6deg)}
/*@slot .bjb-cover::before*/
body.pop-theme .bjb-grid > *:nth-child(8n+1) .bjb-cover::before{background-image:var(--ksfx-m-ball);transform:rotate(-8deg)}
body.pop-theme .bjb-grid > *:nth-child(8n+2) .bjb-cover::before{background-image:var(--ksfx-m-pepero);transform:rotate(7deg)}
body.pop-theme .bjb-grid > *:nth-child(8n+3) .bjb-cover::before{background-image:var(--ksfx-m-sparkle);transform:rotate(-6deg) scale(.94)}
body.pop-theme .bjb-grid > *:nth-child(8n+4) .bjb-cover::before{background-image:var(--ksfx-m-ribbon_roll);transform:rotate(8deg)}
body.pop-theme .bjb-grid > *:nth-child(8n+5) .bjb-cover::before{background-image:var(--ksfx-m-sprinkle_stick);transform:rotate(-7deg) scale(.92)}
body.pop-theme .bjb-grid > *:nth-child(8n+6) .bjb-cover::before{background-image:var(--ksfx-m-star_gift);transform:rotate(6deg)}
body.pop-theme .bjb-grid > *:nth-child(8n+7) .bjb-cover::before{background-image:var(--ksfx-m-choco_bowl);transform:rotate(-5deg)}
body.pop-theme .bjb-grid > *:nth-child(8n+8) .bjb-cover::before{background-image:var(--ksfx-m-pinwheel);transform:rotate(9deg) scale(.94)}
/*@slot .bj-toc ol li::before*/
body.pop-theme .bj-toc ol li:nth-child(5n+1)::before{background-image:var(--ksfx-m-crumb_dot);transform:rotate(-8deg)}
body.pop-theme .bj-toc ol li:nth-child(5n+2)::before{background-image:var(--ksfx-m-ball);transform:rotate(7deg)}
body.pop-theme .bj-toc ol li:nth-child(5n+3)::before{background-image:var(--ksfx-m-sparkle);transform:rotate(-6deg)}
body.pop-theme .bj-toc ol li:nth-child(5n+4)::before{background-image:var(--ksfx-m-choco_bowl);transform:rotate(6deg) scale(.94)}
body.pop-theme .bj-toc ol li:nth-child(5n+5)::before{background-image:var(--ksfx-m-fish);transform:rotate(-7deg)}
/*@slot .pop-pcard__media::before*/
body.pop-theme .pop-result-grid > *:nth-child(8n+1) .pop-pcard__media::before{background-image:var(--ksfx-m-ribbon_roll);transform:rotate(-8deg)}
body.pop-theme .pop-result-grid > *:nth-child(8n+2) .pop-pcard__media::before{background-image:var(--ksfx-m-sprinkle_stick);transform:rotate(7deg) scale(.94)}
body.pop-theme .pop-result-grid > *:nth-child(8n+3) .pop-pcard__media::before{background-image:var(--ksfx-m-star_gift);transform:rotate(-6deg)}
body.pop-theme .pop-result-grid > *:nth-child(8n+4) .pop-pcard__media::before{background-image:var(--ksfx-m-pinwheel);transform:rotate(8deg)}
body.pop-theme .pop-result-grid > *:nth-child(8n+5) .pop-pcard__media::before{background-image:var(--ksfx-m-ball);transform:rotate(-7deg)}
body.pop-theme .pop-result-grid > *:nth-child(8n+6) .pop-pcard__media::before{background-image:var(--ksfx-m-pepero);transform:rotate(6deg) scale(.94)}
body.pop-theme .pop-result-grid > *:nth-child(8n+7) .pop-pcard__media::before{background-image:var(--ksfx-m-sparkle);transform:rotate(-5deg)}
body.pop-theme .pop-result-grid > *:nth-child(8n+8) .pop-pcard__media::before{background-image:var(--ksfx-m-choco_bowl);transform:rotate(9deg)}
/*@slot .pop-bcard__media::after*/
body.pop-theme .pop-result-list > *:nth-child(8n+1) .pop-bcard__media::after{background-image:var(--ksfx-m-choco_bar);transform:rotate(-7deg)}
body.pop-theme .pop-result-list > *:nth-child(8n+2) .pop-bcard__media::after{background-image:var(--ksfx-m-milk_carton);transform:rotate(8deg)}
body.pop-theme .pop-result-list > *:nth-child(8n+3) .pop-bcard__media::after{background-image:var(--ksfx-m-tape2);transform:rotate(-6deg)}
body.pop-theme .pop-result-list > *:nth-child(8n+4) .pop-bcard__media::after{background-image:var(--ksfx-m-fish);transform:rotate(7deg) scale(.94)}
body.pop-theme .pop-result-list > *:nth-child(8n+5) .pop-bcard__media::after{background-image:var(--ksfx-m-bee);transform:rotate(-5deg)}
body.pop-theme .pop-result-list > *:nth-child(8n+6) .pop-bcard__media::after{background-image:var(--ksfx-m-ladybug);transform:rotate(9deg)}
body.pop-theme .pop-result-list > *:nth-child(8n+7) .pop-bcard__media::after{background-image:var(--ksfx-m-water_drop);transform:rotate(-8deg)}
body.pop-theme .pop-result-list > *:nth-child(8n+8) .pop-bcard__media::after{background-image:var(--ksfx-m-butterfly);transform:rotate(6deg) scale(.94)}
/*@slot .pop-page-editor-content h2::before*/
body.pop-theme .pop-page-editor-content > h2:nth-child(4n+1)::before{background-image:var(--ksfx-m-pepero_box);transform:rotate(-7deg)}
body.pop-theme .pop-page-editor-content > h2:nth-child(4n+2)::before{background-image:var(--ksfx-m-pepero_pair);transform:rotate(8deg)}
body.pop-theme .pop-page-editor-content > h2:nth-child(4n+3)::before{background-image:var(--ksfx-m-sunny);transform:rotate(-6deg)}
body.pop-theme .pop-page-editor-content > h2:nth-child(4n+4)::before{background-image:var(--ksfx-m-kite);transform:rotate(7deg)}
/*@slot .pop-page-editor-content h3::before*/
body.pop-theme .pop-page-editor-content > h3:nth-child(10n+1)::before{background-image:var(--ksfx-m-water_drop);transform:rotate(-6deg)}
body.pop-theme .pop-page-editor-content > h3:nth-child(10n+2)::before{background-image:var(--ksfx-m-bee);transform:rotate(7deg)}
body.pop-theme .pop-page-editor-content > h3:nth-child(10n+3)::before{background-image:var(--ksfx-m-ladybug);transform:rotate(-5deg)}
body.pop-theme .pop-page-editor-content > h3:nth-child(10n+4)::before{background-image:var(--ksfx-m-milk_carton);transform:rotate(8deg)}
body.pop-theme .pop-page-editor-content > h3:nth-child(10n+5)::before{background-image:var(--ksfx-m-tape2);transform:rotate(-7deg)}
body.pop-theme .pop-page-editor-content > h3:nth-child(10n+6)::before{background-image:var(--ksfx-m-fish);transform:rotate(6deg)}
body.pop-theme .pop-page-editor-content > h3:nth-child(10n+7)::before{background-image:var(--ksfx-m-choco_bar);transform:rotate(-8deg)}
body.pop-theme .pop-page-editor-content > h3:nth-child(10n+8)::before{background-image:var(--ksfx-m-ball);transform:rotate(7deg) scale(.94)}
body.pop-theme .pop-page-editor-content > h3:nth-child(10n+9)::before{background-image:var(--ksfx-m-pepero_s);transform:rotate(-5deg)}
body.pop-theme .pop-page-editor-content > h3:nth-child(10n+10)::before{background-image:var(--ksfx-m-sparkle);transform:rotate(8deg) scale(.94)}
/* ====== T3 装饰层（引擎注入 .pop-hero / .pop-page-hero 内部） ====== */
.ksfx-scene{position:absolute;inset:0;display:block;pointer-events:none;z-index:0;overflow:hidden}
.ksfx-sprite{position:absolute;width:0;height:0;overflow:hidden}
.ksfx-el{position:absolute;display:none;width:0;height:0;color:var(--pop-ink);line-height:0;opacity:.97;
  filter:drop-shadow(0 4px 0 var(--ksfx-el-shadow))}
.ksfx-el svg{display:block;width:100%;height:100%}
body.pop-front .pop-hero .ksfx-el{display:block}
body.pop-front .pop-hero .ksfx-xm-pine{inset-inline-start:-10px;top:-26px;width:150px;height:150px;opacity:.95}
body.pop-front .pop-hero .ksfx-xm-star{inset-inline-start:14.5%;top:10px;width:58px;height:58px;animation:ksfxTwinkle 5.5s ease-in-out infinite}
body.pop-front .pop-hero .ksfx-xm-flake{inset-inline-start:26%;top:26px;width:38px;height:38px;animation:ksfxSway 6.5s ease-in-out infinite}
body.pop-front .pop-hero .ksfx-xm-frost{inset-inline-end:0;top:0;width:124px;height:124px;opacity:.9}
body.pop-front .pop-hero .ksfx-xm-bell{inset-inline-end:3.5%;top:146px;width:58px;height:58px;animation:ksfxSwing 6s ease-in-out infinite;transform-origin:50% 0}
body.pop-front .pop-hero .ksfx-xm-tree{inset-inline-start:2%;bottom:8px;width:72px;height:72px}
body.pop-front .pop-hero .ksfx-xm-holly{inset-inline-start:9%;bottom:16px;width:38px;height:38px}
body.pop-front .pop-hero .ksfx-xm-gift{inset-inline-end:2.2%;bottom:18px;width:66px;height:66px;animation:ksfxFloat 7.5s ease-in-out infinite}
body.pop-front .pop-hero .ksfx-xm-snowman{inset-inline-end:9.5%;bottom:12px;width:58px;height:58px}
body:not(.pop-front) .pop-page-hero .ksfx-el{display:block}
body:not(.pop-front) .pop-page-hero .ksfx-xm-in-pine{inset-inline-end:-6px;top:-16px;width:132px;height:132px;opacity:.92}
body:not(.pop-front) .pop-page-hero .ksfx-xm-in-bell{inset-inline-start:2%;top:14px;width:52px;height:52px;animation:ksfxSwing 6s ease-in-out infinite;transform-origin:50% 0}
body:not(.pop-front) .pop-page-hero .ksfx-xm-in-star{inset-inline-end:13%;top:18px;width:44px;height:44px;animation:ksfxTwinkle 5.5s ease-in-out infinite}
body:not(.pop-front) .pop-page-hero .ksfx-xm-in-tree{inset-inline-start:3%;bottom:4px;width:58px;height:58px}
body:not(.pop-front) .pop-page-hero .ksfx-xm-in-flake{inset-inline-end:4%;bottom:12px;width:34px;height:34px;animation:ksfxSway 6.5s ease-in-out infinite}
/* 轻动效（纯 CSS，尊重系统减小动效）——配方里写 animation:ksfxFloat 7.5s … 即可取用 */
@keyframes ksfxFloat{0%,100%{transform:translateY(0) rotate(-1.6deg)}50%{transform:translateY(-9px) rotate(1.6deg)}}
@keyframes ksfxSway{0%,100%{transform:translateX(-4px)}50%{transform:translateX(4px)}}
@keyframes ksfxSwing{0%,100%{transform:rotate(-3.5deg)}50%{transform:rotate(3.5deg)}}
@keyframes ksfxTwinkle{0%,100%{opacity:.55;transform:scale(.94)}50%{opacity:1;transform:scale(1.06)}}
@media(max-width:900px){
  body.pop-front .pop-hero .ksfx-el{transform:scale(.78);transform-origin:bottom left}
}
@media(max-width:900px){body.pop-front .pop-hero .ksfx-xm-frost{width:88px!important;height:88px!important;opacity:.85}}
@media(max-width:900px){body:not(.pop-front) .pop-page-hero .ksfx-xm-in-pine{display:none}}
@media(max-width:900px){body.pop-front .pop-hero .ksfx-xm-holly{display:none}}
@media(max-width:900px){body.pop-front .pop-hero .ksfx-xm-flake{display:none}}
@media(max-width:900px){body.pop-front .pop-hero .ksfx-xm-snowman{display:none}}
@media(max-width:900px){body.pop-front .pop-hero .ksfx-xm-pine{display:none}}
@media(max-width:900px){body:not(.pop-front) .pop-page-hero .ksfx-xm-in-flake{display:none}}
@media(max-width:900px){body:not(.pop-front) .pop-page-hero .ksfx-xm-in-star{display:none}}
@media(prefers-reduced-motion:reduce){.ksfx-el{animation:none!important}}
/* ====== 批次 1 · L1 交互总纲（纯 CSS · 零 JS）====== */
/* ① 悬停/键盘聚焦：母题「探头」（放开基础旋转角 → 放大一点），只动 transform（F5） */
@media(hover:hover){
body.pop-theme .pop-nav > ul > li > a:hover::after,
body.pop-theme .pop-nav > ul > li > a:focus-visible::after{transform:scaleX(1)}
body.pop-theme .pop-price-note:hover .pop-price-note__inner::before,
body.pop-theme .pop-price-note:focus-within .pop-price-note__inner::before{animation:ksfxRing 1.2s ease-in-out}
body.pop-theme .pop-nav ul.sub-menu > li > a:hover,
body.pop-theme .pop-nav ul.sub-menu > li > a:focus-visible{transform:translateX(3px)}
body.pop-theme .pop-brand:hover::after{transform:rotate(6deg) scale(1.12)}
body.pop-theme .pop-search-toggle:hover,body.pop-theme .ksdark-btn:hover,body.pop-theme .kslang__btn:hover,
body.pop-theme .pop-menu-toggle:hover,body.pop-theme .pop-mobile-menu__close:hover,body.pop-theme .pop-mobile-menu__back:hover,
body.pop-theme .pop-wa-float:hover{transform:translateY(-2px) scale(1.05)}
body.pop-theme li.product:hover .pop-card__media::before,
body.pop-theme .pop-shelf > a.pop-card:hover .pop-card__media::before{transform:scale(1.16) rotate(0deg)}
body.pop-theme li.product:hover .pop-card__price-row::before,
body.pop-theme .pop-shelf > a.pop-card:hover .pop-card__price-row::before{transform:scale(1.22) rotate(0deg)}
body.pop-theme .pop-cat:hover::before{transform:scale(1.18) rotate(0deg)}
body.pop-theme .pop-head:hover h2::before{transform:scale(1.15) rotate(-6deg)}
body.pop-theme .pop-latest-guides:hover::before{transform:scale(1.12) rotate(-8deg)}
body.pop-theme .bjb-card:hover::after{transform:scale(1.14) rotate(0deg)}
body.pop-theme .pop-faq details:hover>summary::before{transform:scale(1.3) rotate(0deg)}
body.pop-theme .pop-footer__soc:hover,body.pop-theme .pop-footer__soc:focus-visible{transform:translateY(-3px) scale(1.06)}
body.pop-theme .pop-footer__cats a:hover,body.pop-theme .pop-footer__cats a:focus-visible{transform:translateX(3px)}
body.pop-theme .pop-footer__bottom a:hover,body.pop-theme .pop-footer__bottom a:focus-visible{opacity:.72}
body.pop-theme .page-numbers:hover,body.pop-theme .page-numbers:focus-visible{transform:translateY(-2px)}
body.pop-theme .pop-btn--primary:hover{transform:translateY(-1px)}
}
/* ② 按压：贴纸被按扁（触摸设备也要有反馈 → 不放进 hover 媒体） */
body.pop-theme .pop-btn:active{transform:translateY(2px);box-shadow:0 0 0 var(--pop-ink)}
body.pop-theme .page-numbers:active{transform:translateY(0) scale(.96)}
body.pop-theme .pop-footer__soc:active{transform:scale(.95)}
/* ③ 键盘聚焦环（与悬停等价，视觉上更明确） */
body.pop-theme .pop-nav ul li a:focus-visible,body.pop-theme .pop-footer a:focus-visible,
body.pop-theme .pop-search-toggle:focus-visible,body.pop-theme .pop-btn:focus-visible,
body.pop-theme .page-numbers:focus-visible,body.pop-theme .pop-menu-toggle:focus-visible{
  outline:3px solid var(--ksfx-green);outline-offset:3px;border-radius:10px}
/* ④ 无动效偏好：关键帧全停 + 过渡去掉（装潢保留、只是不再动），键盘/悬停的"出现"改为瞬时 */
@media(prefers-reduced-motion:reduce){
body.pop-theme *::before,body.pop-theme *::after,body.pop-theme *{animation:none!important;transition:none!important}
}
/* ====== 批次 2 · 首页交互（纯 CSS · 零 JS）====== */
body.pop-front .ksfx-el{transition:scale .3s var(--pop-spring),filter .3s var(--pop-ease)}
/* B1 键盘等价入口（不放进 hover 媒体查询：键盘在触摸设备上同样需要） */
body.pop-front .pop-hero:focus-within .ksfx-el{scale:1.07;filter:drop-shadow(0 6px 0 var(--ksfx-el-shadow))}
@media(hover:hover){
/* B1 hero：指针进入视觉区 → 9 张贴纸一起「探头」 */
body.pop-front .pop-hero__visual:hover .ksfx-el{scale:1.07;filter:drop-shadow(0 6px 0 var(--ksfx-el-shadow))}
/* B2 品类卡：悬停整卡 → 卡面母题探头（5 个类 + :hover 的权重压过相位规则的 4 个类） */
body.pop-theme .pop-cat:hover .pop-cat__media::before{transform:scale(1.14) rotate(0deg)}
/* B3 悬停区块 → 标题花饰探头。
   ⚠️ 实测坑：与相位规则**同为 (0,4,2)**，靠"后写的赢"不可靠（相位规则由 rotation_css 产出，顺序一变就失效）
   → 给 body 再加一个 .pop-theme（+1 类 → (0,5,2)）**恒定压过**相位规则，不再依赖书写顺序。 */
body.pop-theme.pop-front .pop-section:hover .pop-head h2::after{transform:scale(1.12) rotate(-7deg)}
/* B4 信任徽章抬升 */
body.pop-theme .pop-trust__chip:hover{transform:translateY(-2px) scale(1.03)}
/* B5 货架卡：价格变绿 + 「→」位移 */
body.pop-theme a.pop-card:hover .pop-card__price{color:var(--ksfx-green)}
body.pop-theme a.pop-card:hover .pop-card__go{transform:translateX(3px)}
/* B6 时间线卡：悬停母题探头（同上：相位规则同为 (0,3,1) → 加 .pop-theme 恒定压过） */
body.pop-theme.pop-front .bjm-tl__card:hover::before{transform:scale(1.14) rotate(0deg)}
}
/* ====== 批次 3 · 列表页交互（纯 CSS · 零 JS）====== */
/* ⚠️ 权重纪律（本轮实测踩到的真缺陷，别再退回去）：相位规则的权重**不是 4 类**——
   `body.pop-theme .ks-filters__bar > .ks-dd:nth-child(7n+1) .ks-dd__btn::before` = **5 类**、
   `body.pop-theme .ks-pagination > .ks-page:nth-child(5n+1)::before` = **4 类**。
   首版按"悬停 3 类 + 本段在后"写 → 真浏览器实测：下拉按钮与分页按钮的悬停/键盘**完全没反应**
   （`before == hover`，transform 停在基础角度），而筛选条/标签/商品卡（平手 + 后写）却是好的
   —— 同一个文件里三种结局，只有逐位子量计算样式才看得出来。
   修法 = `body.pop-theme.pop-theme`（同一个类写两遍 = 权重 +1）：**恒定严格压过**相位规则，
   不依赖标签名（`div.ks-dd` 将来改成 `button` 也不会失效）也不依赖书写顺序（build() 若被重排照样赢）。 */
/* 键盘等价入口（**不放进 hover 媒体查询**：键盘在触摸设备上同样需要 → 满足 F7c） */
body.pop-theme.pop-theme .ks-filters__bar > .ks-dd .ks-dd__btn:focus-visible::before,
body.pop-theme.pop-theme .ks-pagination > .ks-page:focus-visible::before,
body.pop-theme.pop-theme .ks-mobile__btn:focus-visible::after{transform:scale(1.18) rotate(0deg)}
@media(hover:hover){
/* C1 筛选条：指针进卡片 → 右上角拉炮探头；标签铃铛摆一下 */
body.pop-theme.pop-theme .ks-filters:hover::after{transform:scale(1.14) rotate(-3deg)}
body.pop-theme.pop-theme .ks-filters__label:hover::after{transform:rotate(0deg) scale(1.16)}
/* C2 下拉按钮：抬起 + 挂件探头 + 箭头翻转（挂件必须走加压版，理由见段首） */
body.pop-theme .ks-dd__btn:hover{transform:translateY(-2px)}
body.pop-theme.pop-theme .ks-filters__bar > .ks-dd .ks-dd__btn:hover::before{transform:scale(1.2) rotate(0deg)}
body.pop-theme .ks-dd__btn:hover .ks-dd__caret{transform:rotate(180deg)}
/* C2 下拉项：右移 + 勾选框弹一下（只动 transform → F5 零布局属性） */
body.pop-theme .ks-opt:hover{transform:translateX(3px)}
body.pop-theme .ks-opt:hover .ks-opt__box{transform:scale(1.14)}
/* C2 排序控件 / 手机筛选键 */
body.pop-theme .ks-sort:hover{transform:translateY(-2px)}
body.pop-theme .ks-mobile__btn:hover{transform:translateY(-2px)}
body.pop-theme.pop-theme .ks-mobile__btn:hover::after{transform:scale(1.18) rotate(0deg)}
/* C3 商品卡（列表/分类 32 张）：母题探头 + 图片角翻（与首页货架卡同一手感） */
body.pop-theme.pop-theme .pop-card:hover .pop-card__media::before{transform:scale(1.18) rotate(0deg)}
body.pop-theme.pop-theme .pop-card:hover .pop-card__price-row::before{transform:scale(1.24) rotate(0deg)}
/* C4 分页：抬起 + 挂件探头（挂件同样走加压版） */
body.pop-theme .ks-page:hover{transform:translateY(-2px)}
body.pop-theme.pop-theme .ks-pagination > .ks-page:hover::before{transform:scale(1.18) rotate(0deg)}
body.pop-theme .pop-pagination li:hover .page-numbers,
body.pop-theme .nav-links .page-numbers:hover{transform:translateY(-2px)}
/* C5 空状态 / 抽屉出口按钮 */
body.pop-theme .ks-empty__clear:hover,body.pop-theme .ks-empty__contact:hover{transform:translateY(-2px)}
body.pop-theme .ks-drawer__apply:hover,body.pop-theme .ks-drawer__clear:hover{transform:translateY(-2px)}
}
/* 按压：贴纸被按扁（触摸设备也要反馈 → 不放进 hover 媒体） */
body.pop-theme .ks-dd__btn:active,body.pop-theme .ks-page:active,body.pop-theme .ks-opt:active,
body.pop-theme .ks-mobile__btn:active,body.pop-theme .ks-empty__clear:active{transform:translateY(1px)}
/* ====== 批次 4 · 产品页交互（纯 CSS · 零 JS）====== */
/* 键盘等价入口（**不放进 hover 媒体查询** → 触摸设备与键盘都要） */
body.pop-theme.pop-theme .pop-product__thumbs button:focus-visible::after,
body.pop-theme.pop-theme .pop-carton-note:focus-within::after,
body.pop-theme.pop-theme .pop-wholesale:focus-within::after,
body.pop-theme.pop-theme .pop-product__wa:focus-visible::after,
body.pop-theme.pop-theme .related.products h2:focus-within::after{transform:scale(1.16) rotate(0deg)}
@media(hover:hover){
/* D1 主图：指针进图 → 胶带翘起 */
body.pop-theme.pop-theme .pop-product__main:hover::after{transform:rotate(-2deg) scale(1.06)}
/* D2 缩略图：主题已有 -3px 位移，这里只让母题探头 */
body.pop-theme.pop-theme .pop-product__thumbs button:hover::after{transform:scale(1.18) rotate(0deg)}
/* D3 箱规行：小姜饼人跳一下 */
body.pop-theme.pop-theme .pop-carton-note:hover::after{transform:scale(1.2) rotate(0deg)}
/* D4 询盘卡：花环探头 + CTA 抬起（只动 transform → F5 零布局属性） */
body.pop-theme.pop-theme .pop-wholesale:hover::after{transform:scale(1.14) rotate(0deg)}
body.pop-theme .pop-wholesale .pop-btn--primary:hover{transform:translateY(-2px)}
/* D4b WhatsApp 行：铃铛摆一下 */
body.pop-theme.pop-theme .pop-product__wa:hover::after{transform:rotate(0deg) scale(1.16)}
/* D5 页签：抬起 */
body.pop-theme .woocommerce-tabs ul.tabs li a:hover{transform:translateY(-2px)}
/* D6 规格表：整行底色亮起 + 行首母题放大 */
body.pop-theme .bj-spec-wrap tr:hover td{background:var(--ksfx-tint-1)!important}
body.pop-theme.pop-theme .bj-spec-wrap tr:hover th::before{transform:scale(1.22) rotate(0deg)}
/* D7 相关产品标题花饰 */
body.pop-theme.pop-theme .related.products h2:hover::after{transform:scale(1.16) rotate(0deg)}
}
/* 按压：贴纸被按扁（触摸设备也要反馈 → 不放进 hover 媒体查询） */
body.pop-theme .pop-wholesale .pop-btn--primary:active,
body.pop-theme .woocommerce-tabs ul.tabs li a:active,
body.pop-theme .pop-product__thumbs button:active{transform:translateY(1px)}
/* ====== 批次 6 · L2 零 JS 滚动驱动（animation-timeline: view()）====== */
/* 不支持 = 这些规则整体不存在 → 元素默认可见、零 CLS；只动 translate/scale/opacity，不动 transform */
@supports (animation-timeline: view()){
body.pop-theme .pop-head h2{animation:ksfxAttach linear both;animation-timeline:view();animation-range:entry 6% entry 40%}
body.pop-theme .pop-cat{animation:ksfxRise linear both;animation-timeline:view();animation-range:entry 8% entry 45%}
body.pop-theme .bjb-card{animation:ksfxRise linear both;animation-timeline:view();animation-range:entry 8% entry 45%}
}
@keyframes ksfxAttach{from{translate:0 14px}to{translate:0 0}}
/* ksfxRise 只动 translate/scale、**不碰 opacity**：新落点可能落在主题 reveal 容器内，
   ⚠️ 曾试「`to` 省略 scale」（方案 B，期望终态回到 none）→ **实测无效**：属性只要在任一关键帧
   出现过就被视为参与动画，终态仍序列化成 `1`（真浏览器实测 raw after scale=1）。故显式写 `scale:1`；
   reveal 用 opacity 控显隐，抢同一属性会打架（零 JS 层不该与主题进场过渡争属性） */
@keyframes ksfxRise{from{translate:0 10px;scale:.95}to{translate:0 0;scale:1}}
/* reduce：逐条停（一条一个选择器 —— 合成一条会被 F7b 判"未覆盖"） */
@media(prefers-reduced-motion:reduce){
body.pop-theme .pop-head h2{animation:none!important}
body.pop-theme .pop-cat{animation:none!important}
body.pop-theme .bjb-card{animation:none!important}
}
/* ====== 404 独立页（引擎注入；本页无 style.css、无 .pop-* 类） ====== */
body.ksfx-404 .ksfx-scene{position:fixed;inset:0;z-index:0}
body.ksfx-404 .ksfx-404card{position:relative;z-index:2;max-width:min(620px,92vw);padding:40px 34px 34px;text-align:center;
  border:2px solid var(--pop-ink);border-radius:26px;box-shadow:0 6px 0 var(--pop-ink);background:var(--ksfx-white);
  background-image:var(--ksfx-m-cocoa_grid),linear-gradient(180deg,var(--ksfx-tint-1),var(--ksfx-tint-2));
  background-repeat:repeat,no-repeat;background-size:24px 24px,auto}
body.ksfx-404 .ksfx-404card::after{content:"";position:absolute;inset-inline-start:50%;top:-12px;margin-inline-start:-34px;width:68px;height:22px;
  pointer-events:none;opacity:.95;background-image:var(--ksfx-m-tape);background-repeat:no-repeat;background-size:contain;transform:rotate(-2deg)}
body.ksfx-404 h1{color:var(--ksfx-red);line-height:1.05}
body.ksfx-404 p{color:var(--pop-ink-soft)}
body.ksfx-404 p strong{color:var(--pop-ink)}
body.ksfx-404 a{border:2px solid var(--pop-ink);box-shadow:0 3px 0 var(--pop-ink);font-weight:800;background:var(--ksfx-red);color:var(--ksfx-onstrip)}
body.ksfx-404 a.g{background:var(--ksfx-white);color:var(--pop-ink)}
body.ksfx-404::before{content:"";position:fixed;inset-inline:0;top:0;height:18px;z-index:3;pointer-events:none;opacity:.95;
  background-image:var(--ksfx-m-stick_band);background-repeat:repeat-x;background-size:120px 18px}
body.ksfx-404::after{content:"";position:fixed;inset-inline:0;bottom:0;height:26px;z-index:3;pointer-events:none;opacity:.92;
  background-image:var(--ksfx-m-ribbon_wave);background-repeat:repeat-x;background-size:160px 26px}
body.ksfx-404 .ksfx-xm-pine{display:block;inset-inline-start:-8px;top:-30px;width:168px;height:168px;opacity:.95}
body.ksfx-404 .ksfx-xm-frost{display:block;inset-inline-end:-6px;top:-6px;width:150px;height:150px;opacity:.9}
body.ksfx-404 .ksfx-xm-bell{display:block;inset-inline-end:17%;top:112px;width:60px;height:60px;animation:ksfxSwing 6s ease-in-out infinite;transform-origin:50% 0}
body.ksfx-404 .ksfx-xm-star{display:block;inset-inline-start:17%;top:20px;width:48px;height:48px;animation:ksfxTwinkle 5.5s ease-in-out infinite}
body.ksfx-404 .ksfx-xm-flake{display:block;inset-inline-start:7%;top:40%;width:36px;height:36px;animation:ksfxSway 6.5s ease-in-out infinite}
body.ksfx-404 .ksfx-xm-tree{display:block;inset-inline-start:3%;bottom:14px;width:80px;height:80px}
body.ksfx-404 .ksfx-xm-holly{display:block;inset-inline-start:12%;bottom:22px;width:44px;height:44px}
body.ksfx-404 .ksfx-xm-gift{display:block;inset-inline-end:3%;bottom:16px;width:72px;height:72px;animation:ksfxFloat 7.5s ease-in-out infinite}
body.ksfx-404 .ksfx-xm-snowman{display:block;inset-inline-end:11%;bottom:12px;width:62px;height:62px}
@media(max-width:900px){body.ksfx-404 .ksfx-xm-pine{display:none}}
@media(max-width:900px){body.ksfx-404 .ksfx-xm-frost{display:none}}
@media(max-width:900px){body.ksfx-404 .ksfx-xm-snowman{display:none}}
@media(max-width:900px){body.ksfx-404 .ksfx-xm-holly{display:none}}
@media(max-width:560px){body.ksfx-404 .ksfx-404card{padding:34px 20px 30px;border-radius:22px}body.ksfx-404::before{height:14px}body.ksfx-404::after{height:18px}}
/* ====== 飘雪 v2（离散小雪花 · 纯 transform · 0 JS · 无 will-change） ====== */
.ksfx-snowfield{position:absolute;inset-inline:0;top:0;height:min(80%,560px);pointer-events:none;overflow:hidden;--ksfx-fall:560px}
.ksfx-flake{position:absolute;top:-8%;background-image:var(--ksfx-m-bee);background-repeat:no-repeat;background-size:contain;animation:ksfxFall linear infinite;transition:translate .5s ease-out}
.ksfx-flake:nth-child(3n){background-image:var(--ksfx-m-ladybug)}
.ksfx-flake:nth-child(4n+1){background-image:var(--ksfx-m-water_drop)}
@keyframes ksfxFall{from{transform:translate3d(0,0,0) rotate(0deg)}to{transform:translate3d(7px,var(--ksfx-fall),0) rotate(180deg)}}
.ksfx-flake:nth-child(1){inset-inline-start:2%;width:12px;height:12px;animation-duration:9s;animation-delay:-0.0s;opacity:.9}
.ksfx-flake:nth-child(2){inset-inline-start:39%;width:16px;height:16px;animation-duration:16s;animation-delay:-1.7s;opacity:.75}
.ksfx-flake:nth-child(3){inset-inline-start:76%;width:9px;height:9px;animation-duration:14s;animation-delay:-3.4s;opacity:.62}
.ksfx-flake:nth-child(4){inset-inline-start:20%;width:19px;height:19px;animation-duration:12s;animation-delay:-5.1s;opacity:.85}
.ksfx-flake:nth-child(5){inset-inline-start:57%;width:14px;height:14px;animation-duration:10s;animation-delay:-6.8s;opacity:.9}
.ksfx-flake:nth-child(6){inset-inline-start:94%;width:12px;height:12px;animation-duration:17s;animation-delay:-8.5s;opacity:.75}
.ksfx-flake:nth-child(7){inset-inline-start:38%;width:16px;height:16px;animation-duration:15s;animation-delay:-10.2s;opacity:.62}
.ksfx-flake:nth-child(8){inset-inline-start:75%;width:9px;height:9px;animation-duration:13s;animation-delay:-11.9s;opacity:.85}
.ksfx-flake:nth-child(9){inset-inline-start:19%;width:19px;height:19px;animation-duration:11s;animation-delay:-0.6s;opacity:.9}
.ksfx-flake:nth-child(10){inset-inline-start:56%;width:14px;height:14px;animation-duration:9s;animation-delay:-2.3s;opacity:.75}
.ksfx-flake:nth-child(11){inset-inline-start:93%;width:12px;height:12px;animation-duration:16s;animation-delay:-4.0s;opacity:.62}
.ksfx-flake:nth-child(12){inset-inline-start:37%;width:16px;height:16px;animation-duration:14s;animation-delay:-5.7s;opacity:.85}
.ksfx-flake:nth-child(13){inset-inline-start:74%;width:9px;height:9px;animation-duration:12s;animation-delay:-7.4s;opacity:.9}
.ksfx-flake:nth-child(14){inset-inline-start:18%;width:19px;height:19px;animation-duration:10s;animation-delay:-9.1s;opacity:.75}
.ksfx-flake:nth-child(15){inset-inline-start:55%;width:14px;height:14px;animation-duration:17s;animation-delay:-10.8s;opacity:.62}
.ksfx-flake:nth-child(16){inset-inline-start:92%;width:12px;height:12px;animation-duration:15s;animation-delay:-12.5s;opacity:.85}
.ksfx-flake:nth-child(17){inset-inline-start:36%;width:16px;height:16px;animation-duration:13s;animation-delay:-1.2s;opacity:.9}
.ksfx-flake:nth-child(18){inset-inline-start:73%;width:9px;height:9px;animation-duration:11s;animation-delay:-2.9s;opacity:.75}
.ksfx-flake:nth-child(19){inset-inline-start:17%;width:19px;height:19px;animation-duration:9s;animation-delay:-4.6s;opacity:.62}
.ksfx-flake:nth-child(20){inset-inline-start:54%;width:14px;height:14px;animation-duration:16s;animation-delay:-6.3s;opacity:.85}
.ksfx-flake:nth-child(21){inset-inline-start:91%;width:12px;height:12px;animation-duration:14s;animation-delay:-8.0s;opacity:.9}
.ksfx-flake:nth-child(22){inset-inline-start:35%;width:16px;height:16px;animation-duration:12s;animation-delay:-9.7s;opacity:.75}
.ksfx-flake:nth-child(23){inset-inline-start:72%;width:9px;height:9px;animation-duration:10s;animation-delay:-11.4s;opacity:.62}
.ksfx-flake:nth-child(24){inset-inline-start:16%;width:19px;height:19px;animation-duration:17s;animation-delay:-0.1s;opacity:.85}
body:not(.pop-front) .pop-page-hero .ksfx-snowfield{height:100%;--ksfx-fall:230px}
@media(max-width:760px){.ksfx-flake:nth-child(n+13){display:none}}
@media(prefers-reduced-motion:reduce){.ksfx-snowfield{display:none}.ksfx-flake{animation:none}}

/* ====== 成对补丁：规格表内的链接（底色是我们的 → 文字色也跟着我们的 token）====== */
body.pop-theme .pop-cert-tier a{color:var(--ksfx-red)!important}
/* TOKENFIX 2026-10-12：本层把箱规提示的黄油底（#FFF0DC，原字 4.55）换成薄荷 tint+tartan，
   原珊瑚字 #C6431A 掉到实测 4.40（AA 需 4.5）→ 按「谁改了底色，谁就要管这块底色上的文字」
   补配对字色：token 分态（浅 #B23A12 / 深 #EBA271），两态各自解析 */
body.pop-theme .bj-quote__carton-note{color:var(--ksfx-note-fg)}
/* 2026-10-13：同上一条同型事故 —— FX 把 .bj-toc / .pop-authorbio 涂成薄荷 tint 渐变后，
   里面的**链接**仍是站点珊瑚 #C6431A → 在渐变下半段实测 4.33–4.43（AA 4.5）。
   补配对字色 token（浅 #B23A12 / 深 #EB9C81=既有渲染值）→ 亮色 5.20–5.56、暗色零变化。
   特异性 body.pop-theme.pop-theme 压过主题的 `body.pop-theme .pop-prose a`(0,2,2)；
   不带 !important → 暗色插件对 nav.bj-toc a 的 !important 仍然赢（#EBA271 不变）。 */
body.pop-theme.pop-theme .bj-toc a,body.pop-theme.pop-theme .pop-authorbio a,
body.pop-theme.pop-theme .faq-item a,body.pop-theme.pop-theme .pop-faq a{color:var(--ksfx-panel-link)}