/* contact: visual-novel dialog (variant B) */
#hc{position:fixed;inset:0;z-index:9000;background:rgba(7,7,7,.8);opacity:0;visibility:hidden;transition:opacity .2s}
#hc.on{opacity:1;visibility:visible}
#hc .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}
#hc.on .vn{animation:hccvin .42s cubic-bezier(.15,.85,.25,1) .1s forwards}
@keyframes hccvin{to{transform:translate(-50%,0)}}
#hc .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}
#hc.on .vn h4{animation:hcctab .3s cubic-bezier(.2,.9,.3,1.3) .42s forwards}
@keyframes hcctab{from{transform:translateY(20px);opacity:0}to{transform:none;opacity:1}}
#hc .vn h4 small{font:700 11px "Noto Sans JP",Oswald,sans-serif;letter-spacing:.25em;margin-left:10px}
#hc .q{margin:0;min-height:1.6em;color:#f2f2f2;font:700 19px/1.6 "Noto Sans JP",sans-serif}
#hc .q::before{content:"「";color:#e60023}#hc .q::after{content:"」";color:#e60023}
#hc .addr{margin:8px 0 0;font:500 15px/1 Oswald,sans-serif;letter-spacing:.08em;color:#e60023}
#hc .cnx{position:absolute;right:18px;bottom:10px;color:#e60023;font-size:14px;animation:hccnx .8s ease-in-out infinite}
@keyframes hccnx{0%,100%{transform:translateY(-2px);opacity:1}50%{transform:translateY(3px);opacity:.4}}
#hc 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}
#hc .row button:hover,#hc .row button:focus-visible{background:#e60023;border-color:#e60023;color:#fff;outline:none}
#hc button i{font:500 11px Oswald,monospace;color:#e60023;margin-right:12px;font-style:normal}

#hc .row{display:flex;justify-content:flex-end;gap:10px;margin-top:14px;opacity:0;transition:opacity .25s}
#hc.ready .row,#hc.ready .ch{opacity:1}
#hc .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}
#hc .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%)}
#hc .ch button{color:#f2f2f2;outline:none}
/* highlight follows hover / keyboard focus (one at a time) */
#hc .ch button.hl{background:#e60023;color:#fff}#hc .ch button.hl i{color:#fff}
#hc .ch button::before{content:"▶ ";color:transparent}#hc .ch button.hl::before{color:#fff}

/* hovered option: snappy left-right jitter loop (forced past reduced-motion like the shutter) */
#hc .ch button.hl{animation:hcmcjit .8s infinite!important}
/* beat: double-tap bump right (6px, back, 3px, back) then pause */
@keyframes hcmcjit{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 */
#hc.on.closing .vn{animation:hccvout .6s cubic-bezier(.6,0,.4,1) forwards!important}
@keyframes hccvout{0%,35%{transform:translate(-50%,0)}100%{transform:translate(-50%,calc(100% + 60px))}}
#hc .vn::after{content:"";position:absolute;inset:0;background:#e60023;opacity:0;pointer-events:none;z-index:1}
#hc.on.closing .vn::after{animation:hccvflash .6s ease-out forwards!important}
@keyframes hccvflash{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)}}
#hc .vn h4{z-index:3}#hc .vn .q,#hc .vn .addr{position:relative;z-index:2}
#hc.on.closing .cnx{animation:none;opacity:0;transition:opacity .6s ease}
#hc.on.closing .ch{animation:hcmcfade .6s ease forwards!important}
@keyframes hcmcfade{to{opacity:0}}
#hc.on.closing{pointer-events:none}
#hc.on.closing .ch,#hc.on.closing .row{opacity:0;transition:none}
/* header contact: step switch + copied toast */
#hc .ch.swap{opacity:0!important;transition:none}
#hc .addr:empty{display:none}
