/* v396 妖怪大辞典「ぷにで遊ぶ」：壁紙保存・ロゴ・操作剣・強力吸引 */
.puni-play-entry{margin:28px auto 4px;max-width:760px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:2px solid #ffd3e6;border-radius:18px;background:linear-gradient(135deg,rgba(255,248,252,.96),rgba(239,250,255,.96));box-shadow:0 8px 24px rgba(91,54,75,.08)}
.puni-play-entry-copy{display:flex;align-items:center;gap:12px;min-width:0}.puni-play-entry-mark{width:44px;height:44px;flex:0 0 44px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#ff6fae,#ff9bc8);color:#fff;border:3px solid #fff;box-shadow:0 4px 13px rgba(255,92,160,.25);font-size:22px;font-weight:900}.puni-play-entry-text{min-width:0}.puni-play-entry-text small{display:inline-block;margin-bottom:3px;color:#a07b8d;font-size:10px;font-weight:900;letter-spacing:.04em}.puni-play-entry-text strong{display:block;color:#d52f7e;font-size:16px;line-height:1.25}.puni-play-entry-text span{display:block;margin-top:4px;color:#74606b;font-size:12px;line-height:1.55}.puni-play-entry-button{appearance:none;border:2px solid #ff7eb5;border-radius:13px;background:linear-gradient(135deg,#ff6fae,#ff98c4);color:#fff;font-weight:900;font-size:13px;padding:10px 15px;white-space:nowrap;cursor:pointer;box-shadow:0 4px 10px rgba(231,64,133,.17);transition:transform .1s ease,box-shadow .1s ease}.puni-play-entry-button:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(231,64,133,.22)}.puni-play-entry-button:active{transform:translateY(1px)}

.puni-playground[hidden]{display:none!important}
.puni-playground{position:fixed;inset:0;z-index:10000;background:linear-gradient(145deg,#fff4fa 0%,#e9f8ff 52%,#fff6c9 100%);color:#352c33;font-family:"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;display:grid;grid-template-rows:auto auto 1fr auto;overflow:hidden;isolation:isolate}
.puni-playground:before{content:"";position:absolute;inset:0;z-index:-2;background-image:radial-gradient(circle at 16% 20%,rgba(255,113,173,.17) 0 4px,transparent 5px),radial-gradient(circle at 74% 30%,rgba(103,201,255,.15) 0 5px,transparent 6px),radial-gradient(circle at 55% 75%,rgba(255,216,77,.17) 0 4px,transparent 5px);background-size:68px 68px,84px 84px,76px 76px}.puni-playground:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(rgba(255,255,255,.05),rgba(255,255,255,.14))}
.puni-play-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:9px 11px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid #ffe0ed;box-shadow:0 5px 18px rgba(74,46,60,.07);z-index:10}
.puni-play-brand{display:flex;align-items:center;gap:9px;margin-right:3px;white-space:nowrap}.puni-play-brand-mark{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#ff71ad,#ff9fc8);color:#fff;border:3px solid #fff;box-shadow:0 4px 12px rgba(255,113,173,.28);font-size:20px;font-weight:900}.puni-play-brand strong{display:block;color:#d92d82;font-size:15px;line-height:1.1}.puni-play-brand small{display:block;color:#8c7280;font-weight:800;font-size:10px;margin-top:3px}.puni-play-catalog{color:#2088b6;font-weight:900}
.puni-play-picker{display:flex;align-items:center;gap:5px;min-width:230px;flex:1 1 290px;max-width:470px}.puni-play-picker input{min-width:0;width:100%;height:38px;border:2px solid #ffc6df;border-radius:12px;padding:0 10px;background:#fff;color:#3e333b;font-size:13px;font-weight:700;outline:none}.puni-play-picker input:focus{border-color:#ff71ad;box-shadow:0 0 0 3px rgba(255,113,173,.13)}
.puni-play-btn{height:38px;border:2px solid #ffd1e8;border-radius:12px;background:#fff;color:#bd276b;font-weight:900;padding:0 10px;cursor:pointer;white-space:nowrap;box-shadow:0 3px 8px rgba(80,45,63,.05);transition:transform .08s ease,background .12s ease,color .12s ease,border-color .12s ease}.puni-play-btn:hover{transform:translateY(-1px);border-color:#ff9fc8}.puni-play-btn:active{transform:translateY(1px)}.puni-play-btn.primary{background:linear-gradient(135deg,#ff71ad,#ff93c0);border-color:#ff71ad;color:#fff}.puni-play-btn.sky{background:#eefaff;border-color:#b8e9ff;color:#2182af}.puni-play-btn.yellow{background:#fff9df;border-color:#ffe58a;color:#956c00}.puni-play-btn.danger{color:#a14d5d;background:#fff8fa}.puni-play-btn.active{background:linear-gradient(135deg,#ff71ad,#ff93c0);border-color:#ff71ad;color:#fff;box-shadow:0 0 0 3px rgba(255,113,173,.13)}.puni-play-separator{width:1px;height:29px;background:#f0d5e1;margin:0 1px}.puni-play-stats{display:flex;align-items:center;gap:6px;margin-left:auto}.puni-play-pill{border-radius:999px;background:#fff0f7;border:1px solid #ffc6df;color:#bd276b;font-size:11px;font-weight:900;padding:6px 9px;white-space:nowrap}.puni-play-pill.blue{background:#effaff;border-color:#bfe8fa;color:#257ea4}
.puni-play-hint{min-height:34px;display:flex;align-items:center;justify-content:center;padding:6px 12px;background:rgba(255,255,255,.78);border-bottom:2px solid #ffddea;color:#6e5964;font-size:11px;font-weight:800;text-align:center;z-index:9}.puni-play-hint b{color:#d52f7e;margin-right:5px}

.puni-play-stage{position:relative;overflow:hidden;touch-action:none;cursor:default;user-select:none;-webkit-user-select:none;background:radial-gradient(circle at 50% 118%,rgba(255,255,255,.92) 0 18%,rgba(255,255,255,0) 54%)}.puni-play-stage[data-mode="grab"]{cursor:grab}.puni-play-stage[data-mode="grab"].is-dragging{cursor:grabbing}.puni-play-stage[data-mode="suck"],.puni-play-stage[data-mode="launch"]{cursor:crosshair}.puni-play-stage[data-mode="sword"]{cursor:none}
#puniEntityLayer{position:absolute;inset:0;pointer-events:none}.puni-entity{position:absolute;left:0;top:0;width:96px;height:96px;display:grid;place-items:center;transform-origin:50% 50%;will-change:transform;pointer-events:none;touch-action:none;filter:drop-shadow(0 9px 8px rgba(64,47,56,.17));border:0;background:none;padding:0;margin:0}.puni-entity img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none}.puni-entity.is-held{filter:drop-shadow(0 13px 11px rgba(217,45,130,.28))}.puni-entity.is-held img{animation:puni-held-wobble .34s ease-in-out infinite alternate}@keyframes puni-held-wobble{from{transform:scale(.96,1.045)}to{transform:scale(1.045,.96)}}
.puni-suction-ring{--suction-size:640px;position:absolute;width:var(--suction-size);height:var(--suction-size);border-radius:50%;border:3px dashed rgba(73,181,232,.34);box-shadow:inset 0 0 70px rgba(103,201,255,.08),0 0 0 1px rgba(255,255,255,.5);transform:translate(-50%,-50%);pointer-events:none;animation:puni-suction-ring 1.15s linear infinite}.puni-suction-ring:after{content:"";position:absolute;left:50%;top:50%;width:78px;height:78px;border-radius:50%;border:4px solid rgba(103,201,255,.52);box-shadow:0 0 0 10px rgba(103,201,255,.13),0 0 25px rgba(103,201,255,.28);transform:translate(-50%,-50%)}.puni-suction-ring.boost{border-color:rgba(55,171,228,.56);background:radial-gradient(circle,rgba(103,201,255,.13),transparent 57%)}@keyframes puni-suction-ring{to{transform:translate(-50%,-50%) rotate(360deg)}}
.puni-slash{position:absolute;height:8px;border-radius:999px;transform-origin:0 50%;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,0),#fff 28%,#ffdc58 58%,rgba(255,113,173,0));filter:drop-shadow(0 0 8px rgba(255,206,73,.95));animation:puni-slash-fade .22s ease-out forwards}@keyframes puni-slash-fade{from{opacity:1}to{opacity:0;transform:var(--slash-transform) scaleX(1.18)}}.puni-sword-burst{position:absolute;width:150px;height:150px;border-radius:50%;border:7px solid rgba(255,221,75,.82);filter:drop-shadow(0 0 8px rgba(255,129,178,.75));transform:translate(-50%,-50%) scale(.35);pointer-events:none;animation:puni-sword-burst .26s ease-out forwards}@keyframes puni-sword-burst{to{opacity:0;transform:translate(-50%,-50%) scale(1.9) rotate(35deg)}}.puni-pop{position:absolute;width:9px;height:9px;border-radius:50%;pointer-events:none;background:#ff71ad;animation:puni-pop .45s ease-out forwards}@keyframes puni-pop{to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.2)}}
.puni-play-empty{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;text-align:center;color:#a37d91;font-weight:900;opacity:.78;padding:20px}.puni-play-empty[hidden]{display:none}.puni-play-empty b{font-size:clamp(22px,4vw,42px);display:block;color:#d95b94;margin-bottom:8px}.puni-play-empty span{font-size:12px;line-height:1.8}
.puni-play-help{display:flex;justify-content:center;align-items:center;gap:13px;flex-wrap:wrap;min-height:38px;padding:7px 12px;background:rgba(255,255,255,.9);border-top:2px solid #ffe0ee;color:#7c6672;font-size:11px;font-weight:800;z-index:10}.puni-play-help kbd{display:inline-grid;place-items:center;min-width:22px;height:21px;padding:0 5px;border-radius:6px;border:1px solid #d8c7cf;background:#fff;box-shadow:0 2px 0 #e9dfe4;font:800 10px/1 sans-serif;color:#765966}.puni-play-toast{position:absolute;left:50%;bottom:58px;z-index:12000;transform:translate(-50%,12px);opacity:0;pointer-events:none;background:rgba(57,43,51,.9);color:#fff;border-radius:999px;padding:8px 13px;font-size:12px;font-weight:900;transition:.2s ease}.puni-play-toast.show{opacity:1;transform:translate(-50%,0)}

@media(max-width:900px){.puni-play-toolbar{gap:6px;padding:8px}.puni-play-brand{width:100%;margin-bottom:1px}.puni-play-picker{order:2;flex-basis:100%;max-width:none}.puni-play-separator{display:none}.puni-play-stats{margin-left:0}.puni-play-btn{height:36px;padding:0 9px;font-size:12px}.puni-play-help{font-size:10px;gap:8px}.puni-play-entry{margin-inline:10px}}
@media(max-width:560px){.puni-play-entry{align-items:stretch;flex-direction:column}.puni-play-entry-button{width:100%}.puni-play-brand small{display:none}.puni-play-stats{width:100%;order:3}.puni-play-pill{font-size:10px}.puni-play-help{display:none}.puni-play-hint{font-size:10px;min-height:30px}.puni-play-btn{font-size:11px;padding-inline:7px}}
@media(prefers-reduced-motion:reduce){.puni-entity img,.puni-suction-ring{animation:none!important}.puni-play-btn,.puni-play-entry-button{transition:none}}


/* v396 additions */
.puni-play-btn.capture{background:linear-gradient(135deg,#eefaff,#fff8df);border-color:#bde9f8;color:#297b9d}.puni-play-btn.capture:hover{border-color:#79cdeb;background:linear-gradient(135deg,#e5f8ff,#fff4c6)}
.puni-game-logo{position:absolute;left:18px;top:16px;z-index:9000;width:clamp(135px,18vw,285px);height:auto;opacity:.92;pointer-events:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 4px 5px rgba(255,255,255,.85)) drop-shadow(0 2px 8px rgba(64,47,56,.12))}
.puni-sword-cursor{position:absolute;left:0;top:0;z-index:11950;width:96px;height:96px;pointer-events:none;transform-origin:50% 66%;will-change:transform;filter:drop-shadow(0 5px 3px rgba(65,48,57,.25));transition:filter .08s ease}.puni-sword-cursor[hidden]{display:none!important}.puni-sword-cursor span{display:block;font-size:78px;line-height:1;transform:translate(-3px,-4px);font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.puni-sword-cursor.is-boost{filter:drop-shadow(0 0 8px rgba(255,211,64,.95)) drop-shadow(0 6px 4px rgba(65,48,57,.3))}.puni-sword-cursor.is-boost span{animation:puni-sword-pulse .18s ease-in-out infinite alternate}@keyframes puni-sword-pulse{to{transform:translate(-3px,-4px) scale(1.08)}}
.puni-suction-ring{border-width:4px;border-color:rgba(46,166,224,.48);box-shadow:inset 0 0 100px rgba(74,193,248,.14),0 0 0 1px rgba(255,255,255,.75),0 0 25px rgba(67,189,243,.12)}.puni-suction-ring:before{content:"";position:absolute;inset:18%;border-radius:50%;border:4px dotted rgba(53,178,236,.45);animation:puni-suction-inner .68s linear infinite reverse}.puni-suction-ring:after{width:92px;height:92px;border-width:6px;background:radial-gradient(circle,rgba(255,255,255,.92) 0 15%,rgba(69,189,244,.25) 17% 48%,rgba(69,189,244,.04) 70%);box-shadow:0 0 0 14px rgba(103,201,255,.16),0 0 38px rgba(44,174,235,.48)}.puni-suction-ring.boost{border-color:rgba(30,147,211,.76);background:radial-gradient(circle,rgba(103,201,255,.22),rgba(103,201,255,.08) 36%,transparent 66%);box-shadow:inset 0 0 120px rgba(63,183,241,.23),0 0 34px rgba(49,177,235,.26)}@keyframes puni-suction-inner{to{transform:rotate(360deg)}}
@media(max-width:900px){.puni-game-logo{left:10px;top:10px;width:clamp(110px,23vw,190px)}.puni-play-btn.capture{font-size:11px}}
@media(max-width:560px){.puni-sword-cursor{width:82px;height:82px}.puni-sword-cursor span{font-size:66px}.puni-game-logo{width:125px;opacity:.86}}
