
/* MasakiWolf Mascot Guide v1.2.0 */
.mw-mg-heading-host{
    position:relative!important;
    overflow:visible!important;
}
.mw-mg-heading-host--home{
    padding-right:var(--mw-mg-host-space-pc,190px)!important;
}
.mw-mg-heading-host--ntr{
    padding-right:var(--mw-mg-host-space-pc,205px)!important;
}
.mw-mg-slot{
    --mw-mg-size-pc:110px;
    --mw-mg-size-sp:72px;
    --mw-mg-bubble-font-pc:14px;
    --mw-mg-bubble-font-sp:11px;
    --mw-mg-bubble-bg:rgba(47,16,42,.97);
    --mw-mg-bubble-text:#ffffff;
    --mw-mg-bubble-border:rgba(236,190,91,.82);
    --mw-mg-brightness:1;
    --mw-mg-contrast:1;
    --mw-mg-glow-color:#f6dfa2;
    --mw-mg-glow-size:8px;
    --mw-mg-plate-color:rgba(255,255,255,.18);
    position:relative;
    z-index:8;
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    color:inherit!important;
    text-decoration:none!important;
    isolation:isolate;
}
.mw-mg-slot--home-heading,
.mw-mg-slot--ntr-heading{
    position:absolute!important;
    top:0;
    right:4px;
    width:calc(var(--mw-mg-size-pc) + 56px);
    min-height:var(--mw-mg-size-pc);
}
.mw-mg-slot--ntr-heading{top:-8px}
.mw-mg-visual{
    position:relative;
    z-index:2;
    display:block;
    width:var(--mw-mg-size-pc);
    flex:0 0 var(--mw-mg-size-pc);
    filter:drop-shadow(0 10px 12px rgba(14,4,18,.28));
    transform-origin:50% 90%;
}
.mw-mg-has-glow .mw-mg-visual{
    filter:
        drop-shadow(0 0 var(--mw-mg-glow-size) var(--mw-mg-glow-color))
        drop-shadow(0 10px 12px rgba(14,4,18,.28));
}
.mw-mg-visual::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:-5%;
    display:none;
    border-radius:46% 46% 40% 40%;
    background:var(--mw-mg-plate-color);
    box-shadow:0 8px 24px rgba(0,0,0,.12);
    pointer-events:none;
}
.mw-mg-has-plate .mw-mg-visual::before{
    display:block;
}
.mw-mg-image,
.mw-mg-parts{
    filter:brightness(var(--mw-mg-brightness)) contrast(var(--mw-mg-contrast));
}
.mw-mg-image{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-width:none!important;
    margin:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
}
.mw-mg-bubble{
    position:absolute;
    z-index:3;
    top:-8px;
    right:calc(var(--mw-mg-size-pc) - 8px);
    min-width:128px;
    max-width:190px;
    padding:9px 12px;
    border:1px solid var(--mw-mg-bubble-border);
    border-radius:14px 14px 3px 14px;
    background:var(--mw-mg-bubble-bg);
    color:var(--mw-mg-bubble-text)!important;
    font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
    font-size:var(--mw-mg-bubble-font-pc,14px);
    font-weight:800;
    line-height:1.55;
    white-space:pre-line;
    text-align:left;
    box-shadow:0 10px 24px rgba(10,2,15,.28);
}
.mw-mg-bubble::after{
    content:"";
    position:absolute;
    right:-8px;
    bottom:7px;
    width:15px;
    height:15px;
    border-right:1px solid var(--mw-mg-bubble-border);
    border-bottom:1px solid var(--mw-mg-bubble-border);
    background:var(--mw-mg-bubble-bg);
    transform:rotate(-45deg);
}
.mw-mg-bubble__sp{display:none}
.mw-mg-slot--link{cursor:pointer}
.mw-mg-slot--link:focus-visible{
    outline:3px solid #f2c96e;
    outline-offset:5px;
    border-radius:14px;
}

/* 右下固定 */
.mw-mg-fixed{
    position:fixed!important;
    z-index:9996!important;
    right:var(--mw-mg-fixed-right-pc,20px)!important;
    bottom:var(--mw-mg-fixed-bottom-pc,80px)!important;
    display:block!important;
    width:auto!important;
    max-width:min(360px,calc(100vw - 24px))!important;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(18px) scale(.96);
    transition:opacity .28s ease,transform .28s ease,visibility .28s ease;
}
.mw-mg-fixed.is-visible{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
}
.mw-mg-slot--fixed{
    width:calc(var(--mw-mg-size-pc) + 220px);
    min-height:var(--mw-mg-size-pc);
    justify-content:flex-end;
}
.mw-mg-slot--fixed .mw-mg-bubble{
    top:2px;
    right:calc(var(--mw-mg-size-pc) - 2px);
    min-width:175px;
    max-width:275px;
}
.mw-mg-fixed__close{
    position:absolute;
    z-index:10;
    top:-9px;
    right:-5px;
    display:flex;
    align-items:center;
    justify-content:center;
    width:27px;
    height:27px;
    padding:0;
    border:1px solid rgba(255,255,255,.62);
    border-radius:50%;
    background:#48102f;
    color:#fff;
    font-size:20px;
    line-height:1;
    cursor:pointer;
    box-shadow:0 4px 12px rgba(0,0,0,.24);
}
.mw-mg-fixed__close:hover{background:#721a49}

/* アニメーション */
@keyframes mw-mg-float{
    0%,100%{transform:translateY(0)}
    50%{transform:translateY(-7px)}
}
@keyframes mw-mg-sway{
    0%,100%{transform:rotate(-1.6deg)}
    50%{transform:rotate(1.6deg)}
}
@keyframes mw-mg-nudge{
    0%,100%{transform:translateX(0)}
    25%{transform:translateX(-5px)}
    50%{transform:translateX(4px)}
    75%{transform:translateX(-2px)}
}
@keyframes mw-mg-bounce{
    0%{transform:translateY(18px) scale(.88)}
    55%{transform:translateY(-9px) scale(1.05)}
    78%{transform:translateY(3px) scale(.98)}
    100%{transform:none}
}
.mw-mg-animation--float .mw-mg-visual{animation:mw-mg-float 2.9s ease-in-out infinite}
.mw-mg-animation--sway .mw-mg-visual{animation:mw-mg-sway 3.2s ease-in-out infinite}
.mw-mg-animation--nudge .mw-mg-visual{animation:mw-mg-nudge .9s ease-out 1}
.mw-mg-animation--bounce .mw-mg-visual{animation:mw-mg-bounce .78s cubic-bezier(.2,.8,.25,1) 1}

/* 第3段階：同一キャンバスのパーツ重ね */
.mw-mg-parts{
    position:relative;
    display:block;
    width:100%;
    aspect-ratio:1/1.25;
}
.mw-mg-part{
    position:absolute!important;
    inset:0!important;
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    pointer-events:none!important;
    transform-origin:50% 50%;
}
@keyframes mw-mg-wave-part{
    0%,100%{transform:rotate(0)}
    25%{transform:rotate(-13deg)}
    50%{transform:rotate(8deg)}
    75%{transform:rotate(-9deg)}
}
@keyframes mw-mg-tail-part{
    0%,100%{transform:rotate(-4deg)}
    50%{transform:rotate(7deg)}
}
@keyframes mw-mg-ears-part{
    0%,88%,100%{transform:scaleY(1)}
    92%{transform:scaleY(.94)}
    96%{transform:scaleY(1.03)}
}
@keyframes mw-mg-blink-part{
    0%,92%,100%{opacity:0}
    94%,97%{opacity:1}
}
.mw-mg-parts--wave .mw-mg-part--right-arm{
    transform-origin:52% 38%;
    animation:mw-mg-wave-part 2.3s ease-in-out infinite;
}
.mw-mg-parts--tail .mw-mg-part--tail{
    transform-origin:53% 68%;
    animation:mw-mg-tail-part 2.5s ease-in-out infinite;
}
.mw-mg-parts--ears .mw-mg-part--ears{
    transform-origin:50% 48%;
    animation:mw-mg-ears-part 4s ease-in-out infinite;
}
.mw-mg-parts--blink .mw-mg-part--eyes-closed{
    animation:mw-mg-blink-part 4.5s linear infinite;
}

/* ショートコード */
.mw-mg-shortcode{
    --mw-mg-size-pc:110px;
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:10px;
}
.mw-mg-shortcode .mw-mg-visual{
    width:var(--mw-mg-size-pc);
    flex-basis:var(--mw-mg-size-pc);
}
.mw-mg-shortcode .mw-mg-visual > a{
    display:block;
}
.mw-mg-shortcode img{
    display:block;
    width:100%;
    height:auto;
}

/* スマートフォン */
@media (max-width:767px){
    .mw-mg-heading-host--home,
    .mw-mg-heading-host--ntr{
        padding-right:var(--mw-mg-host-space-sp,112px)!important;
    }
    .mw-mg-slot--home-heading,
    .mw-mg-slot--ntr-heading{
        top:2px;
        right:0;
        width:calc(var(--mw-mg-size-sp) + 34px);
        min-height:var(--mw-mg-size-sp);
    }
    .mw-mg-visual{
        width:var(--mw-mg-size-sp);
        flex-basis:var(--mw-mg-size-sp);
    }
    .mw-mg-bubble{
        top:-4px;
        right:calc(var(--mw-mg-size-sp) - 2px);
        min-width:88px;
        max-width:125px;
        padding:7px 9px;
        border-radius:11px 11px 3px 11px;
        font-size:var(--mw-mg-bubble-font-sp,11px);
        line-height:1.45;
    }
    .mw-mg-bubble__pc{display:none}
    .mw-mg-bubble__sp{display:block}
    .mw-mg-fixed{
        right:var(--mw-mg-fixed-right-sp,10px)!important;
        bottom:var(--mw-mg-fixed-bottom-sp,72px)!important;
        max-width:calc(100vw - 12px)!important;
    }
    .mw-mg-slot--fixed{
        width:calc(var(--mw-mg-size-sp) + 165px);
        min-height:var(--mw-mg-size-sp);
    }
    .mw-mg-slot--fixed .mw-mg-bubble{
        right:calc(var(--mw-mg-size-sp) - 1px);
        min-width:132px;
        max-width:190px;
        font-size:var(--mw-mg-bubble-font-sp,12px);
    }
    .mw-mg-fixed__close{
        top:-7px;
        right:-2px;
        width:24px;
        height:24px;
        font-size:18px;
    }
}

/* 動きを減らす設定 */
@media (prefers-reduced-motion:reduce){
    .mw-mg-visual,
    .mw-mg-part{
        animation:none!important;
        transition:none!important;
    }
    .mw-mg-fixed{transition:none!important}
}

/* テーマ側の広範囲な非表示CSSへの対策 */
body .mw-mg-slot,
body .mw-mg-bubble,
body .mw-mg-visual{
    visibility:visible!important;
    opacity:1;
}
