.ppm-page{background:#fff8fb;padding:24px 12px 48px}
.ppm-app{max-width:760px;margin:0 auto;color:#4b3b45;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif}
.ppm-hero,.ppm-puzzle-panel,.ppm-game-panel,.ppm-products{background:#fff;border:1px solid #f2d9e6;border-radius:24px;box-shadow:0 10px 30px rgba(179,86,132,.12);padding:20px;margin-bottom:18px}
.ppm-kicker{display:inline-block;margin:0 0 8px;padding:5px 12px;border-radius:999px;background:#ffe7f1;color:#b74475;font-size:13px;font-weight:800}
.ppm-hero h1{margin:0 0 10px;font-size:26px;line-height:1.35}
.ppm-lead,.ppm-help{margin:0;line-height:1.8}.ppm-status-card,.ppm-game-top,.ppm-meter-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.ppm-small-label{margin:0 0 4px;color:#9d7688;font-size:12px;font-weight:800}.ppm-piece-count{margin:0;font-size:28px;font-weight:900;color:#c94e87}.ppm-stage-text{font-weight:900;color:#7c5969}.ppm-reset-button,.ppm-retry-button{appearance:none;border:0;border-radius:999px;background:#d75b93;color:#fff;padding:10px 16px;font-weight:900;cursor:pointer;box-shadow:0 6px 14px rgba(215,91,147,.22)}.ppm-next-button{background:#6fba78}.ppm-puzzle-grid{display:grid;grid-template-columns:repeat(3,1fr);aspect-ratio:1/1;border-radius:18px;overflow:hidden;border:3px solid #f0bfd4;background:#fff2f7}

.ppm-puzzle-piece{position:relative;background-size:300% 300%;opacity:0.03;border:1px solid rgba(255,255,255,.85);transition:opacity .35s,transform .35s}

.ppm-puzzle-piece.is-collected{opacity:1;transform:scale(1.01)}
.ppm-grid{
	display:grid;
	grid-template-columns:repeat(9,1fr);
	gap:5px;touch-action:manipulation;
 	width: 100%;
	max-width: 100vw;
}
.ppm-cell{
	position:relative;aspect-ratio:1/1;
	border:0;
	border-radius:10px;
	background:linear-gradient(180deg,#fff4f8,#f7dce8);
	box-shadow:inset 0 -2px 0 rgba(163,89,119,.16);
	font-weight:900;
	cursor:pointer;
	color:#3d3338;
	aspect-ratio: 1 / 1;
	width: 100%;
	font-size: 14px;
}

.ppm-cell.is-open{background:#fff;border:1px solid #f1d4e1;box-shadow:none;cursor:default}
.ppm-cell.is-flagged{background:#fff0cf}
.ppm-cell.is-dead{background:#dcdcdc}
.ppm-cell.is-good{background:#effff1}
.ppm-cell.is-piece{background:#f7efff}
.ppm-cell-icon{font-size:22px;line-height:1}.ppm-num-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.ppm-num-dead{font-size:16px;color:#222}.ppm-num-good{font-size:16px;color:#e6559b}.ppm-meter-area{display:grid;grid-template-columns:92px 1fr;gap:12px;align-items:center;margin-top:16px}.ppm-character-box{position:relative;display:grid;place-items:center;min-height:92px;border-radius:18px;background:#fff;border:1px solid #f3d3e1;box-shadow:0 6px 16px rgba(179,86,132,.09)}.ppm-character-box img{width:74px;height:74px;object-fit:contain;border-radius:16px}.ppm-character-bubble{position:absolute;left:76px;top:-12px;z-index:8;white-space:nowrap;background:#fff;border:2px solid #f1cadb;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:900;color:#8a4f68;box-shadow:0 8px 18px rgba(80,40,60,.16);animation:ppmCharBubble .25s ease both}.ppm-character-bubble::after{content:"";position:absolute;left:10px;bottom:-7px;width:10px;height:10px;background:#fff;border-right:2px solid #f1cadb;border-bottom:2px solid #f1cadb;transform:rotate(45deg)}@keyframes ppmCharBubble{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.ppm-meter-wrap{padding:14px;border-radius:18px;background:#fff7fb;border:1px solid #f3d3e1}.ppm-meter-head{margin-bottom:10px;font-weight:900}.ppm-meter{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.ppm-meter-seg{height:18px;border-radius:999px;background:#ead7df;box-shadow:inset 0 2px 5px rgba(0,0,0,.06)}.ppm-meter-seg.is-active{background:linear-gradient(180deg,#9be99d,#54ba65)}.ppm-message{margin-top:12px;min-height:28px;font-weight:800;color:#7b5a69}.ppm-bubble{position:absolute;z-index:5;left:50%;top:-12px;transform:translate(-50%,-100%);white-space:nowrap;background:#fff;border:2px solid #f1cadb;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900;box-shadow:0 8px 18px rgba(80,40,60,.16);animation:ppmBubble 1.2s ease forwards;pointer-events:none}.ppm-bubble.minus{color:#d93030}.ppm-bubble.plus{color:#169a3a}.ppm-bubble::after{content:"";position:absolute;left:50%;bottom:-7px;width:10px;height:10px;background:#fff;border-right:2px solid #f1cadb;border-bottom:2px solid #f1cadb;transform:translateX(-50%) rotate(45deg)}@keyframes ppmBubble{0%{opacity:0;transform:translate(-50%,-80%)}15%,75%{opacity:1}100%{opacity:0;transform:translate(-50%,-140%)}}.ppm-products h2{margin:0 0 14px;font-size:20px}.ppm-product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.ppm-product-card{display:block;text-decoration:none;color:#4b3b45;background:#fff8fb;border:1px solid #f0d3df;border-radius:18px;overflow:hidden;font-weight:900}.ppm-product-card p{margin:10px 12px 14px}.ppm-product-img{aspect-ratio:1.2/1;display:grid;place-items:center;background:linear-gradient(135deg,#fff0f6,#eef9ff);color:#ba7693;font-weight:900}
@media (max-width:560px){
	.ppm-page{padding:14px 10px 36px}
	.ppm-hero,.ppm-puzzle-panel,.ppm-game-panel,.ppm-products{
		padding:16px;
		border-radius:20px
	}
	.ppm-hero h1{font-size:21px}
	.ppm-grid{gap:4px}
	.ppm-cell{border-radius:8px}
	.ppm-cell-icon{font-size:18px}
	.ppm-num-dead,.ppm-num-good{font-size:13px}
	.ppm-status-card,.ppm-game-top{align-items:flex-start;flex-direction:column}
	.ppm-reset-button{width:100%}
	.ppm-meter-area{grid-template-columns:78px 1fr;gap:8px}
	.ppm-character-box{min-height:78px}
	.ppm-character-box img{width:62px;height:62px}
	.ppm-character-bubble{left:58px;top:-10px;font-size:12px;padding:6px 10px}
	.ppm-product-grid{gap:10px}
}

.ppm-retry-button{display:block;width:min(100%,320px);margin:16px auto 0;background:#e45858;font-size:16px;padding:14px 18px}.ppm-retry-button[hidden]{display:none}.ppm-app.is-failed .ppm-grid{opacity:.72}.ppm-app.is-failed .ppm-character-box{border-color:#f2b4b4;background:#fff7f7}.ppm-app.is-goal .ppm-game-panel{display:grid;grid-template-columns:1fr;gap:14px}.ppm-app.is-goal .ppm-game-top{display:none}.ppm-app.is-goal .ppm-meter-area{grid-template-columns:1fr;max-width:360px;margin:8px auto 0}.ppm-app.is-goal .ppm-character-box{min-height:170px;border-color:#f4d99b;background:linear-gradient(180deg,#fffdf3,#fff7d8)}.ppm-app.is-goal .ppm-character-box img{width:150px;height:150px}.ppm-app.is-goal .ppm-character-bubble{left:calc(50% + 54px);top:8px}.ppm-app.is-goal .ppm-message{text-align:center;font-size:17px}.ppm-app.is-goal .ppm-puzzle-panel{margin-bottom:12px}.ppm-app.is-goal .ppm-puzzle-grid{box-shadow:0 12px 28px rgba(194,131,58,.16)}
@media (max-width:560px){.ppm-app.is-goal .ppm-character-box{min-height:145px}.ppm-app.is-goal .ppm-character-box img{width:124px;height:124px}.ppm-app.is-goal .ppm-character-bubble{left:calc(50% + 38px);top:4px}}

.probiotic-floating-score {
  position: fixed !important;
  left: 50% !important;
  top: 50% !important;
  z-index: 2147483647 !important;

  transform: translate(-50%, -50%) scale(0.8);
  -webkit-transform: translate(-50%, -50%) scale(0.8);

  font-size: clamp(64px, 20vw, 110px);
  font-weight: 900;
  line-height: 1;
  pointer-events: none;
  opacity: 0;

  display: block !important;
  visibility: visible !important;

  animation: probioticFloatingScore 1s ease-out forwards;
  -webkit-animation: probioticFloatingScore 1s ease-out forwards;
}

.probiotic-floating-score.is-plus {
  color: #68ae78;
  text-shadow: 0 0 20px rgba(104,174,120,0.7);
}

.probiotic-floating-score.is-minus {
  color: #e53935;
  text-shadow: 0 0 20px rgba(229,57,53,0.7);
}

@keyframes probioticFloatingScore {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.5);
  }
  20% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.3);
  }
  70% {
    opacity: 1;
    transform: translate(-50%, -55%) scale(1);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -70%) scale(0.9);
  }
}

@-webkit-keyframes probioticFloatingScore {
  0% {
    opacity: 0;
    -webkit-transform: translate(-50%, -50%) scale(0.5);
  }
  20% {
    opacity: 1;
    -webkit-transform: translate(-50%, -50%) scale(1.3);
  }
  70% {
    opacity: 1;
    -webkit-transform: translate(-50%, -55%) scale(1);
  }
  100% {
    opacity: 0;
    -webkit-transform: translate(-50%, -70%) scale(0.9);
  }
}