/* contact: visual-novel dialog (variant B) */
#mc{position:fixed;inset:0;z-index:9000;background:rgba(7,7,7,.8);opacity:0;visibility:hidden;transition:opacity .2s}
#mc.on{opacity:1;visibility:visible}
#mc .vn{position:absolute;left:50%;bottom:28px;width:min(1000px,calc(100% - 40px));transform:translate(-50%,calc(100% + 60px));background:rgba(10,10,10,.96);border-top:2px solid #e60023;padding:32px 32px 20px;box-sizing:border-box;cursor:pointer}
#mc.on .vn{animation:cvin .42s cubic-bezier(.15,.85,.25,1) .1s forwards}
@keyframes cvin{to{transform:translate(-50%,0)}}
#mc .vn h4{position:absolute;top:-17px;left:22px;margin:0;background:#e60023;color:#fff;font:400 17px/1 Anton,"Noto Sans JP",sans-serif;letter-spacing:.1em;padding:8px 26px 8px 14px;clip-path:polygon(0 0,100% 0,calc(100% - 12px) 100%,0 100%);opacity:0}
#mc.on .vn h4{animation:ctab .3s cubic-bezier(.2,.9,.3,1.3) .42s forwards}
@keyframes ctab{from{transform:translateY(20px);opacity:0}to{transform:none;opacity:1}}
#mc .vn h4 small{font:700 11px "Noto Sans JP",Oswald,sans-serif;letter-spacing:.25em;margin-left:10px}
#mc .q{margin:0;min-height:1.6em;color:#f2f2f2;font:700 19px/1.6 "Noto Sans JP",sans-serif}
#mc .q::before{content:"「";color:#e60023}#mc .q::after{content:"」";color:#e60023}
#mc .addr{margin:8px 0 0;font:500 15px/1 Oswald,sans-serif;letter-spacing:.08em;color:#e60023}
#mc .cnx{position:absolute;right:18px;bottom:10px;color:#e60023;font-size:14px;animation:cnx .8s ease-in-out infinite}
@keyframes cnx{0%,100%{transform:translateY(-2px);opacity:1}50%{transform:translateY(3px);opacity:.4}}
#mc button{cursor:pointer;font:700 14px/1 "Noto Sans JP",Oswald,sans-serif;letter-spacing:.12em;color:#f2f2f2;background:#000;border:1px solid #444;padding:11px 20px;transition:.15s}
#mc .row button:hover,#mc .row button:focus-visible{background:#e60023;border-color:#e60023;color:#fff;outline:none}
#mc button i{font:500 11px Oswald,monospace;color:#e60023;margin-right:12px;font-style:normal}

#mc .row{display:flex;justify-content:flex-end;gap:10px;margin-top:14px;opacity:0;transition:opacity .25s}
#mc.ready .row,#mc.ready .ch{opacity:1}
#mc .ch{position:absolute;left:50%;top:30%;transform:translateX(-50%);display:flex;flex-direction:column;gap:12px;width:min(520px,80%);opacity:0;transition:opacity .3s}
#mc .ch button{text-align:left;padding:16px 22px;font-size:16px;background:rgba(0,0,0,.9);border:1px solid #333;border-left:4px solid #e60023;clip-path:polygon(0 0,100% 0,calc(100% - 14px) 100%,0 100%)}
#mc .ch button{color:#f2f2f2;outline:none}
/* highlight follows hover / keyboard focus (one at a time) */
#mc .ch button.hl{background:#e60023;color:#fff}#mc .ch button.hl i{color:#fff}
#mc .ch button::before{content:"▶ ";color:transparent}#mc .ch button.hl::before{color:#fff}

/* hovered option: snappy left-right jitter loop (forced past reduced-motion like the shutter) */
#mc .ch button.hl{animation:mcjit .8s infinite!important}
/* beat: double-tap bump right (6px, back, 3px, back) then pause */
@keyframes mcjit{0%{transform:translateX(0);animation-timing-function:cubic-bezier(.2,.9,.3,1)}9%{transform:translateX(6px);animation-timing-function:cubic-bezier(.6,0,.8,.4)}18%{transform:translateX(0);animation-timing-function:cubic-bezier(.2,.9,.3,1)}26%{transform:translateX(3px);animation-timing-function:cubic-bezier(.6,0,.8,.4)}34%,100%{transform:translateX(0)}}

/* close: text box slides down off screen, choices drop + fade */
/* same as lightbox dialog exit (lb-dialog.css vnout/vnflash, .32s): red light sweep, then slide down */
#mc.on.closing .vn{animation:cvout .6s cubic-bezier(.6,0,.4,1) forwards!important}
@keyframes cvout{0%,35%{transform:translate(-50%,0)}100%{transform:translate(-50%,calc(100% + 60px))}}
#mc .vn::after{content:"";position:absolute;inset:0;background:#e60023;opacity:0;pointer-events:none;z-index:1}
#mc.on.closing .vn::after{animation:cvflash .6s ease-out forwards!important}
@keyframes cvflash{0%{opacity:.55;clip-path:inset(0 100% 0 0)}40%{opacity:.55;clip-path:inset(0 0 0 0)}100%{opacity:0;clip-path:inset(0 0 0 0)}}
#mc .vn h4{z-index:3}#mc .vn .q,#mc .vn .addr{position:relative;z-index:2}
#mc.on.closing .cnx{animation:none;opacity:0;transition:opacity .6s ease}
#mc.on.closing .ch{animation:mcfade .6s ease forwards!important}
@keyframes mcfade{to{opacity:0}}
#mc.on.closing{pointer-events:none}
#mc.on.closing .ch,#mc.on.closing .row{opacity:0;transition:none}
