#g-run-encounter{position:fixed;inset:0;z-index:99999;color:#f7f5ff;font-family:ui-monospace,Menlo,Consolas,monospace}#g-run-encounter *{box-sizing:border-box}#g-run-encounter [hidden]{display:none!important}
.encounter-stage{position:relative;width:100%;height:100dvh;min-height:450px;overflow:hidden;background:linear-gradient(#07061255,#08040aaa 75%,#05040ada);isolation:isolate}
.encounter-topline{position:absolute;top:18px;left:18px;z-index:4;padding:7px 10px;border:1px solid #9d5384;background:#090611e8;color:#f7acd4;font-size:12px;font-weight:800;letter-spacing:.2em;text-shadow:0 0 16px #ff5194}
.encounter-close{position:absolute;top:14px;right:20px;z-index:8;width:42px;height:42px;border:1px solid #ffffff65;border-radius:8px;background:#080610d9;color:white;font-size:30px;line-height:1;cursor:pointer}.encounter-close:hover{background:#52243c}
.encounter-sound{position:absolute;top:14px;right:72px;z-index:8;padding:11px 13px;border:1px solid #bd7da8;border-radius:8px;background:#080610e8;color:#ffcae3;font:700 10px ui-monospace,monospace;letter-spacing:.06em;cursor:pointer}.encounter-sound:hover,.encounter-sound:focus-visible{background:#52243c;color:white}.encounter-sound:disabled{opacity:.5;cursor:default}
.encounter-ground{position:absolute;left:0;right:0;bottom:25%;height:3px;background:#d39cff;box-shadow:0 0 22px #a663ff,0 6px 0 #533579}
.encounter-speedlines{position:absolute;inset:0;z-index:1;opacity:0;pointer-events:none;background:repeating-linear-gradient(-16deg,transparent 0 32px,#ffd4f01c 33px 36px,transparent 37px 72px);mask-image:linear-gradient(90deg,transparent,#000 15%,#000 78%,transparent);transform:translateX(0)}.encounter-stage.attacking .encounter-speedlines{opacity:.8;animation:encounter-speedline-rush .18s linear infinite}.encounter-flash{position:absolute;inset:0;z-index:5;background:#fff5e8;opacity:0;pointer-events:none}.encounter-stage.impact-flash .encounter-flash{animation:encounter-impact-flash .3s ease-out both}
.encounter-runner{position:absolute;left:17%;bottom:25%;width:90px;height:95px;z-index:3;transform-origin:50% 95%;animation:encounter-walk-in .9s cubic-bezier(.2,.8,.3,1) both}
.encounter-runner-image{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 10px #9a68ff)}.encounter-runner-fallback{position:absolute;left:28px;bottom:18px;width:34px;height:35px;border-radius:11px 11px 6px 6px;background:linear-gradient(#aa77dc,#4c2a70);box-shadow:0 0 15px #9162d2;text-align:center}.encounter-runner-fallback::before{content:"";position:absolute;left:5px;bottom:-18px;width:9px;height:19px;border-radius:3px;background:#293650;box-shadow:16px 0 #293650}.encounter-runner-fallback::after{content:"";position:absolute;left:-7px;top:4px;width:8px;height:27px;border-radius:6px;background:#8b5db8;box-shadow:40px 0 #8b5db8}.encounter-runner-fallback span{position:absolute;left:-2px;top:-30px;display:block;width:38px;height:34px;border:3px solid #8f70be;border-radius:6px;background:#11182c;color:white;font-size:27px;font-weight:900;line-height:28px}
.encounter-avatar{position:absolute;left:69%;top:19%;width:clamp(105px,16vw,190px);aspect-ratio:1;z-index:4;border:5px solid #e5dcff;border-radius:50%;background:#100e1f;box-shadow:0 0 0 8px #a268ff30,0 0 55px #bb7cff;overflow:hidden;transform:translate(-50%,-50%);animation:encounter-avatar-idle 2s ease-in-out infinite}
.encounter-avatar img{width:100%;height:100%;object-fit:cover}
.encounter-impact{position:absolute;left:18%;bottom:27%;width:80px;height:80px;border:3px solid #fff;border-radius:50%;z-index:2;opacity:0;pointer-events:none}.encounter-hitword{position:absolute;left:22%;bottom:42%;z-index:6;color:#ffdb64;font-size:clamp(27px,6vw,74px);font-weight:1000;font-style:italic;letter-spacing:-.06em;white-space:nowrap;text-shadow:5px 5px #aa275e,0 0 25px #ff5e8f;opacity:0;pointer-events:none}.encounter-hitword.show{animation:encounter-word .6s ease-out both}
.encounter-dialogue{position:absolute;left:50%;bottom:3%;z-index:7;display:flex;gap:18px;width:min(92vw,850px);min-height:145px;padding:17px;border:3px solid #fff;background:#08070de8;box-shadow:0 0 0 5px #0a0910,0 0 25px #000;transform:translateX(-50%)}.encounter-portrait{width:95px;height:95px;flex:none;border:2px solid #dac5ff;background:#171123;overflow:hidden}.encounter-portrait img{width:100%;height:100%;object-fit:cover}.encounter-dialogue-main{flex:1;min-width:0}.encounter-speaker{color:#ffb8df;font-size:14px;font-weight:900;letter-spacing:.13em}.encounter-speaker span{float:right;color:#786f8c;font-size:10px}.encounter-line{min-height:40px;margin:10px 0;color:#fff;font-size:clamp(14px,2vw,19px);font-weight:600;line-height:1.45}.encounter-choices,.encounter-end-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.encounter-choices button,.encounter-end-actions button,.encounter-end-actions a{padding:8px 13px;border:2px solid #fff;background:#08070d;color:#fff;font:700 12px ui-monospace,monospace;text-decoration:none;cursor:pointer}.encounter-choices button:hover,.encounter-choices button:focus-visible,.encounter-end-actions button:hover,.encounter-end-actions a:hover{border-color:#ffb2da;color:#ffb2da;outline:none}
.encounter-stage.attacking .encounter-avatar{animation:encounter-avatar-beatdown 2.55s cubic-bezier(.2,.6,.4,1) both}.encounter-stage.attacking .encounter-runner{animation:encounter-runner-beaten 2.55s ease-in both}.encounter-stage.attacking .encounter-impact{animation:encounter-shockwave 2.55s ease-out both}.encounter-stage.impact-shake{animation:encounter-screen-shake .35s linear}.encounter-stage.finished .encounter-avatar{animation:encounter-avatar-idle 2s ease-in-out infinite}.encounter-stage.finished .encounter-runner{opacity:0;animation:none}
@keyframes encounter-walk-in{from{transform:translateX(-45vw) rotate(-8deg)}to{transform:translateX(0) rotate(0)}}
@keyframes encounter-avatar-idle{0%,100%{transform:translate(-50%,-50%) translateY(0) rotate(-3deg)}50%{transform:translate(-50%,-50%) translateY(-12px) rotate(3deg)}}
@keyframes encounter-avatar-beatdown{0%{transform:translate(-50%,-50%) scale(1)}12%{transform:translate(-50%,-50%) translate(-10vw,-9vh) scale(.7) rotate(-25deg)}22%{transform:translate(-50%,-50%) translate(-50vw,var(--strike-y,47vh)) scale(1.6) rotate(16deg)}31%{transform:translate(-50%,-50%) translate(-34vw,12vh) scale(.85) rotate(-12deg)}47%{transform:translate(-50%,-50%) translate(-51vw,var(--second-strike-y,48vh)) scale(1.8) rotate(-25deg)}58%{transform:translate(-50%,-50%) translate(-26vw,3vh) scale(.8) rotate(15deg)}77%{transform:translate(-50%,-50%) translate(-50vw,var(--last-strike-y,48vh)) scale(2.2) rotate(25deg)}100%{transform:translate(-50%,-50%) translate(-38vw,17vh) scale(1.1)}}
@keyframes encounter-runner-beaten{0%,19%{transform:translateX(0) rotate(0) scale(1)}24%{transform:translate(10px,-20px) rotate(30deg) scale(.9)}31%{transform:translate(35px,-5px) rotate(75deg) scale(.9)}47%{transform:translate(24px,-32px) rotate(-70deg) scale(.85)}58%{transform:translate(70px,8px) rotate(135deg) scale(.7)}77%{transform:translate(60px,-70px) rotate(290deg) scale(.7)}100%{transform:translate(110px,45px) rotate(420deg) scale(.15,.08);opacity:0}}
@keyframes encounter-shockwave{0%,19%,30%,45%,57%,75%,100%{opacity:0;transform:scale(.1)}22%,47%,77%{opacity:.85;transform:scale(2.8)}}
@keyframes encounter-word{from{opacity:0;transform:translateY(28px) scale(2) rotate(-12deg)}28%{opacity:1;transform:translateY(-10px) scale(1) rotate(-8deg)}to{opacity:0;transform:translateY(-35px) scale(1.15) rotate(-6deg)}}
@keyframes encounter-screen-shake{0%,100%{translate:0 0}20%{translate:-9px 5px}40%{translate:10px -8px}60%{translate:-6px -4px}80%{translate:8px 6px}}
@keyframes encounter-speedline-rush{to{transform:translateX(-75px)}}@keyframes encounter-impact-flash{0%{opacity:.45}100%{opacity:0}}
@media(max-width:600px){.encounter-topline{top:14px;left:14px;font-size:9px}.encounter-ground{bottom:31%}.encounter-runner{left:14%;bottom:31%;width:72px;height:76px}.encounter-avatar{left:72%;top:23%;width:105px}.encounter-dialogue{bottom:3%;width:94vw;min-height:170px;padding:10px;gap:9px}.encounter-portrait{width:48px;height:48px}.encounter-speaker{font-size:11px}.encounter-line{font-size:13px}.encounter-choices button,.encounter-end-actions button,.encounter-end-actions a{font-size:10px;padding:7px}.encounter-hitword{left:10%;bottom:44%;font-size:29px}.encounter-impact{bottom:34%}.encounter-stage{--strike-y:40vh;--second-strike-y:40vh;--last-strike-y:35vh}}
@media(max-width:380px){.encounter-sound{top:55px;right:14px;padding:8px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.encounter-stage *{animation-duration:.01ms!important;transition-duration:.01ms!important}.encounter-stage.attacking .encounter-runner{opacity:0}}
