/* =====================================================================
   角色主题：水豚噜噜 (images supplied by the site owner, in /assets/capy/)
   ===================================================================== */
html[data-theme=capy][data-macaron=true]{
 --c:#FFE19D;--c1:#FFE19D;--c2:#FFCFA0;--c3:#FFF2D6;--c4:#D6EDB6;
 --green:#EA914D;--deep:#7E5032;--accent:#FFE19D;--ink:#5A3A22;
 --paper:#FFFBF3;--line:#F6E6CB;--soft:#FFF6E1;--tint:#FFEDC7}
html[data-theme=capy] body.farm-ui{
 background:
  radial-gradient(circle at 12px 12px,#FFE2A633 2.5px,transparent 3px) 0 0/34px 34px,
  radial-gradient(900px 520px at 0% 0%,#FFEDC766,transparent 62%),
  radial-gradient(900px 600px at 100% 10%,#FFE0C266,transparent 60%),
  radial-gradient(800px 600px at 60% 110%,#E2F3CC66,transparent 60%),
  var(--paper);background-attachment:fixed}

/* Item cells: a different 噜噜 face in each cell's corner */
html[data-theme=capy] body.farm-ui[data-density] #workspace .aggregate-grid>.aggregate-card{--cc:#FFE9B6}
html[data-theme=capy] body.farm-ui[data-density] #workspace .aggregate-grid>.aggregate-card::after{
 content:"";position:absolute;right:4px;bottom:4px;width:34px;height:34px;z-index:2;pointer-events:none;border-radius:50%;
 background:var(--capy,url(/assets/capy/face-01.webp)) center/cover no-repeat;border:2px solid #fff;
 box-shadow:0 3px 8px -2px #8a4a1455;transform-origin:50% 100%}
html[data-theme=capy] body.farm-ui[data-density] #workspace .aggregate-grid>.aggregate-card:hover::after{animation:capyHop .7s var(--nova-ease)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+1){--capy:url(/assets/capy/face-01.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+2){--capy:url(/assets/capy/face-02.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+3){--capy:url(/assets/capy/face-03.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+4){--capy:url(/assets/capy/face-04.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+5){--capy:url(/assets/capy/face-05.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+6){--capy:url(/assets/capy/face-06.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+7){--capy:url(/assets/capy/face-07.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+8){--capy:url(/assets/capy/face-08.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+9){--capy:url(/assets/capy/face-09.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+10){--capy:url(/assets/capy/face-10.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+11){--capy:url(/assets/capy/face-11.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+12){--capy:url(/assets/capy/face-12.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+13){--capy:url(/assets/capy/face-13.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+14){--capy:url(/assets/capy/face-14.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+15){--capy:url(/assets/capy/face-15.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+16){--capy:url(/assets/capy/face-16.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+17){--capy:url(/assets/capy/face-17.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+18){--capy:url(/assets/capy/face-18.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+19){--capy:url(/assets/capy/face-19.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+20){--capy:url(/assets/capy/face-20.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+21){--capy:url(/assets/capy/face-21.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+22){--capy:url(/assets/capy/face-22.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+23){--capy:url(/assets/capy/face-23.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+24){--capy:url(/assets/capy/face-24.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+25){--capy:url(/assets/capy/face-25.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+26){--capy:url(/assets/capy/face-26.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+27){--capy:url(/assets/capy/face-27.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+28){--capy:url(/assets/capy/face-28.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+29){--capy:url(/assets/capy/face-29.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+30){--capy:url(/assets/capy/face-30.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+31){--capy:url(/assets/capy/face-31.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+32){--capy:url(/assets/capy/face-32.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+33){--capy:url(/assets/capy/face-33.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+34){--capy:url(/assets/capy/face-34.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+35){--capy:url(/assets/capy/face-35.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+36){--capy:url(/assets/capy/face-36.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+37){--capy:url(/assets/capy/face-37.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+38){--capy:url(/assets/capy/face-38.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+39){--capy:url(/assets/capy/face-39.webp)}
html[data-theme=capy] #workspace .aggregate-grid>.aggregate-card:nth-child(40n+40){--capy:url(/assets/capy/face-40.webp)}
html[data-theme=capy] body.farm-ui[data-density] #workspace .aggregate-card .compact-stock-status{margin-right:30px}

/* Title banner: two sticker cards */
html[data-theme=capy] body.farm-ui[data-density] .main>header{
 background:url(/assets/capy/banner-art.webp) left 50% center/auto 116% no-repeat,
  linear-gradient(115deg,#FFF2D0 0%,#FFE6B6 40%,#FFDCBE 72%,#FFEFD6 100%)}
html[data-theme=capy] body.farm-ui[data-density] .main>header h1::after{
 content:"";display:inline-block;width:1.25em;height:1.25em;margin-left:8px;vertical-align:-5px;border-radius:50%;
 border:2px solid #fff;box-shadow:0 3px 8px -3px #8a4a1466;
 background:url(/assets/capy/face-21.webp) center/cover;animation:capyBob 2.6s ease-in-out infinite}

/* Stat cards: round 噜噜 faces */
html[data-theme=capy] body.farm-ui .stat-icon{background:#fff!important;overflow:hidden;border:2px solid #fff;padding:0}
html[data-theme=capy] body.farm-ui .stat-icon .ui-icon{display:none}
html[data-theme=capy] body.farm-ui .stat-icon::after{content:"";position:absolute;inset:0;background:center/cover no-repeat;border-radius:inherit}
html[data-theme=capy] #statistics article:nth-of-type(2) .stat-icon::after{background-image:url(/assets/capy/face-14.webp)}
html[data-theme=capy] #statistics article:nth-of-type(3) .stat-icon::after{background-image:url(/assets/capy/face-31.webp)}
html[data-theme=capy] #statistics article:nth-of-type(4) .stat-icon::after{background-image:url(/assets/capy/face-12.webp)}

/* Sidebar: “整点睡觉吧” sticker card and a 噜噜 logo */
html[data-theme=capy] body.farm-ui .sidebar-garden{padding-top:118px;
 background:url(/assets/capy/sticker-sleep.webp) 10px 10px/104px no-repeat,linear-gradient(135deg,#ffffff1f,#ffffff0a)}
html[data-theme=capy] body.farm-ui .sidebar-garden .ui-icon{display:none}
html[data-theme=capy] body.farm-ui[data-density] .sidebar .mark{background:url(/assets/capy/face-21.webp) center/cover;border:2px solid #fff3}
html[data-theme=capy] body.farm-ui[data-density] .sidebar .mark .ui-icon{opacity:0}

/* Page bottom: a slowly scrolling sticker wall */
html[data-theme=capy] body.farm-ui[data-density] .main>footer{
 position:relative;padding-top:178px;margin-top:10px;
 background:url(/assets/capy/sticker-wall.webp) 0 34px/4544px 136px repeat-x;animation:capyWall 140s linear infinite}
html[data-theme=capy] body.farm-ui[data-density] .main>footer::before{
 content:"今天也要元气满满地囤货哦～";position:absolute;left:50%;top:2px;transform:translateX(-50%);
 padding:5px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--deep);font-size:12px;font-weight:700;
 box-shadow:0 6px 14px -8px #8a4a1455;white-space:nowrap}

/* Empty state */
html[data-theme=capy] body.farm-ui #inventoryEmpty{padding-top:150px;background:url(/assets/capy/sticker-cry.webp) center 8px/130px no-repeat}

@keyframes capyHop{0%{transform:none}30%{transform:translateY(-7px) rotate(-8deg) scale(1.15)}60%{transform:translateY(0) rotate(4deg)}100%{transform:none}}
@keyframes capyBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px) rotate(-4deg)}}
@keyframes capyWall{from{background-position-x:0}to{background-position-x:-4544px}}
@media(max-width:700px){
 html[data-theme=capy] body.farm-ui[data-density] #workspace .aggregate-grid>.aggregate-card::after{width:24px;height:24px;right:2px;bottom:2px;border-width:1.5px}
 html[data-theme=capy] body.farm-ui[data-density] #workspace .aggregate-card .compact-stock-status{margin-right:22px}
 html[data-theme=capy] body.farm-ui[data-density] .main>header{background:linear-gradient(115deg,#FFF2D0 0%,#FFE6B6 40%,#FFDCBE 72%,#FFEFD6 100%)}
 html[data-theme=capy] body.farm-ui[data-density] .main>footer{background-size:3408px 102px;padding-top:140px;animation-name:capyWallSm}
 @keyframes capyWallSm{from{background-position-x:0}to{background-position-x:-3408px}}
}
body.motion-paused .main>header h1::after,body.motion-paused .main>footer{animation:none!important}
