

@font-face{font-family:"Cinzel";src:url(assets/fonts/Cinzel.woff2) format("woff2");font-weight:400 900;font-display:block}
@font-face{font-family:"M PLUS Rounded 1c";src:url(assets/fonts/MPLUSRounded1c-500.woff2) format("woff2");font-weight:500;font-display:block}
@font-face{font-family:"M PLUS Rounded 1c";src:url(assets/fonts/MPLUSRounded1c-700.woff2) format("woff2");font-weight:700;font-display:block}
@font-face{font-family:"M PLUS Rounded 1c";src:url(assets/fonts/MPLUSRounded1c-800.woff2) format("woff2");font-weight:800;font-display:block}
@font-face{font-family:GameFont;src:url(assets/fonts/game.woff2)}
@font-face{font-family:GameTitle;src:url(assets/fonts/title.woff2)}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}
html,body{height:100%;background:#040407;overflow:hidden;touch-action:manipulation}
body{display:grid;place-items:center;font-family:GameFont,"M PLUS Rounded 1c","Trebuchet MS","Segoe UI","Hiragino Sans","Yu Gothic","Meiryo","Noto Sans CJK JP",system-ui,sans-serif;font-weight:700;color:#fff}

#game{--ch:94%;--char-zoom:1.15;--ac:#ffb0dc;--ac2:#c9b3ff;--fd:GameTitle,"Cinzel",Georgia,"M PLUS Rounded 1c","Hiragino Sans","Yu Gothic","Meiryo",serif;--shade:rgba(10,5,20,.86);
 position:relative;container-type:size;width:min(100vw,calc(100dvh*9/16));height:min(100dvh,calc(100vw*16/9));overflow:hidden;background:#000;-webkit-text-stroke:.45cqw #000;paint-order:stroke fill;letter-spacing:.02em}
button,input{font:inherit;color:inherit;-webkit-text-stroke:inherit}
button{background:none;border:0;cursor:pointer}


.scr,.pnl{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:4cqw;padding:8cqw;text-align:center}
.scr.on,.scr.out,.pnl.on,.pnl.out{display:flex}
.scr.full.on,.scr.full.out{display:block;padding:0}
.scr.on,.pnl.on{animation:sin .5s both}
.scr.out,.pnl.out{animation:sout .35s both;pointer-events:none}
.scr.out .btn,.scr.out .ib{animation:bout .3s both calc(var(--i,0)*40ms)}
.pnl{z-index:20;background:radial-gradient(120% 80% at 50% 40%,#1a0e2aee,#000000f2)}
.pnl>*{width:80cqw}
h1{font-family:var(--fd);font-size:6.4cqw;letter-spacing:.16em;font-weight:700;-webkit-text-stroke:0;text-shadow:0 0 3cqw var(--ac2),0 .4cqw 1cqw #000}
p{font-size:3.8cqw;line-height:1.6;font-weight:500;opacity:.92}
.age{width:26cqw;height:26cqw;border:.5cqw solid #fff;border-radius:50%;display:grid;place-items:center;font-family:var(--fd);font-size:9cqw;-webkit-text-stroke:0;box-shadow:inset 0 0 3cqw #ffb0dc55;animation:ring 2s infinite}


.btn{--g:var(--ac);--ln:#ffffffb8;position:relative;overflow:hidden;padding:3.4cqw 9cqw;font-family:var(--fd);font-size:4.4cqw;letter-spacing:.12em;
 background:linear-gradient(90deg,#0000,var(--shade) 22%,var(--shade) 78%,#0000);
 -webkit-mask:linear-gradient(90deg,#0000,#000 16%,#000 84%,#0000);mask:linear-gradient(90deg,#0000,#000 16%,#000 84%,#0000);
 transition:transform .15s,filter .25s,background .25s,letter-spacing .3s;animation:up .5s backwards calc(var(--i,0)*70ms)}
.btn::after{content:'';position:absolute;inset:0;pointer-events:none;
 background:linear-gradient(90deg,#0000 6%,var(--ln) 38%,var(--ln) 62%,#0000 94%) top/100% .26cqw no-repeat,
  linear-gradient(90deg,#0000 6%,var(--ln) 38%,var(--ln) 62%,#0000 94%) bottom/100% .26cqw no-repeat,
  radial-gradient(45% 110% at 50% 115%,color-mix(in srgb,var(--g) 30%,transparent),#0000 70%)}
.btn::before{content:'';position:absolute;inset:0;background:linear-gradient(105deg,#0000 42%,#ffffff40 50%,#0000 58%);transform:translateX(-130%);animation:shine 4.5s infinite calc(var(--i,0)*500ms);pointer-events:none}
.btn:hover{filter:drop-shadow(0 0 1.4cqw color-mix(in srgb,var(--g) 70%,transparent));letter-spacing:.16em;text-shadow:0 0 2cqw var(--g)}
.btn.press{transform:scale(.96);background:linear-gradient(90deg,#0000,color-mix(in srgb,var(--g) 45%,#0a0514) 22%,color-mix(in srgb,var(--g) 45%,#0a0514) 78%,#0000);filter:drop-shadow(0 0 2.4cqw var(--g))}
.btn:disabled{opacity:.3;pointer-events:none}
#ld{width:70cqw;display:flex;flex-direction:column;align-items:center;gap:1.6cqw;font-size:3.2cqw;letter-spacing:.08em;color:#fffc;transition:opacity .5s}
#ld b{width:100%;height:1.2cqw;border-radius:1cqw;overflow:hidden;background:#ffffff22;box-shadow:inset 0 0 0 .2cqw #ffffff22}
#ld i{display:block;height:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--ac),#ffe08a);transition:transform .25s}
#ld.done{opacity:0;height:0;margin:-2cqw 0;overflow:hidden;transition:opacity .5s,height .5s .3s,margin .5s .3s}
.btn.off{opacity:.45;--ln:#ffffff55}
.btn.big{padding:4cqw 10cqw;font-size:4.8cqw}
.btn.ghost{--ln:#ffffff40;--shade:rgba(10,5,20,.5);font-size:3.4cqw;padding:2.2cqw 8cqw}
.btn.hl{background:linear-gradient(90deg,#0000,color-mix(in srgb,var(--g) 28%,#0a0514e0) 22%,color-mix(in srgb,var(--g) 28%,#0a0514e0) 78%,#0000);--ln:color-mix(in srgb,var(--g) 80%,#fff);animation:up .5s backwards calc(var(--i,0)*70ms),glow 1.7s ease-in-out infinite alternate}
.btn.pat{--g:#ff6f9f}
.btn.itc{--g:#ff5c5c}
.btn.dsc{--g:#7289ff}
.rip{position:absolute;width:1px;height:1px;border-radius:50%;background:var(--g,#fff);opacity:.6;transform:translate(-50%,-50%);animation:rip .6s ease-out forwards;pointer-events:none}

.ib{position:relative;overflow:hidden;width:11cqw;height:11cqw;border-radius:50%;display:grid;place-items:center;
 background:radial-gradient(circle at 50% 28%,#3b2552e0,#0a0612eb 72%);box-shadow:inset 0 0 0 .26cqw #ffffff66,inset 0 .9cqw 1.6cqw #ffffff1c,0 .8cqw 2.4cqw #000b;
 transition:transform .15s,box-shadow .25s;animation:up .5s backwards calc(var(--i,0)*80ms)}
.ib svg{width:5.6cqw;height:5.6cqw;stroke:#fff;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;filter:drop-shadow(0 0 .8cqw #fff6)}
.ib:hover{box-shadow:inset 0 0 0 .26cqw var(--ac),inset 0 .9cqw 1.6cqw #ffffff26,0 0 3cqw color-mix(in srgb,var(--ac) 60%,transparent)}
.ib.press{transform:scale(.86);box-shadow:inset 0 0 0 .3cqw var(--ac),0 0 5cqw var(--ac)}
.ib.on{box-shadow:inset 0 0 0 .3cqw var(--ac),inset 0 0 3cqw color-mix(in srgb,var(--ac) 45%,transparent),0 0 3.5cqw var(--ac)}


.logo{position:relative;width:74cqw;height:34cqw;background:center/contain no-repeat;animation:logo 1.6s both}
.miss::after{content:attr(data-n);position:absolute;inset:0;display:grid;place-items:center;padding:2cqw;font-size:3cqw;opacity:.85;word-break:break-all}
.logo.miss{border:.4cqw dashed #fff9;background-color:#ffffff10}
#s-logo .logo{width:80cqw;height:88cqw}


#s-menu{justify-content:flex-end;gap:2.8cqw;padding-bottom:9cqw;overflow:hidden}
.mbg{position:absolute;inset:-4%;background:#0b0b14 center/cover;animation:kb 20s ease-in-out infinite alternate}
#s-menu::before{content:'';position:absolute;inset:0;background:linear-gradient(#0000 25%,#000e);z-index:0}
#s-menu .logo{width:96cqw;height:50cqw;margin:6cqw 0 auto}
#nav{position:relative;display:flex;flex-direction:column;gap:2.4cqw;width:84cqw}
.row{display:flex;gap:1cqw}.row .btn{flex:1;min-width:0;padding:3.2cqw 1cqw;font-size:3.9cqw;letter-spacing:.05em}.row .btn:hover{letter-spacing:.07em}


#stage{position:absolute;inset:0;overflow:hidden;--px:0;--py:0;background:#000}
#art{position:absolute;inset:0}
#bgL{position:absolute;inset:-6%;will-change:transform}
#bg{position:absolute;inset:0;background:#111 center/cover;animation:kb 22s ease-in-out infinite alternate}
#cL{position:absolute;left:0;right:0;bottom:0;height:var(--ch);will-change:transform}
#chr{position:absolute;inset:0;transform-origin:50% 100%;animation:breath 4.5s ease-in-out infinite}
#chr.talk{animation:talk .55s ease-in-out infinite}
#chr{transition:scale 1.6s cubic-bezier(.25,.8,.25,1),translate 1.6s cubic-bezier(.25,.8,.25,1),transform-origin 1.6s}
#chr.kissz{transform-origin:50% 29%;scale:3.1;translate:0 17%}
#cs{position:absolute;inset:0;background:center bottom/contain no-repeat;scale:var(--char-zoom)}
#cs.miss{margin:0 16cqw;border:.4cqw dashed #fff9;border-radius:30cqw 30cqw 3cqw 3cqw;background-color:#ffffff14}
#cs.miss::after{align-items:start;padding-top:30%}
#cs.enter{animation:cin .6s cubic-bezier(.2,.9,.3,1) both}
#cs.swap{animation:swp .3s}
#cs.leave{animation:cout .45s both}
#ov{position:absolute;inset:0;z-index:2;background:center/cover;opacity:0;transition:opacity .8s}
#ov.on{opacity:1}
#vig{position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(120% 90% at 50% 40%,#0000 55%,#000a)}
#flash,#fade{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0;background:#fff}
#fade{background:#000}
#fade.go{animation:fd .5s}
.fx-fade-in #fade{animation:fdin 1.4s}
.fx-shake #stage{animation:shk .5s}
.fx-zoom #stage{animation:zm .9s}

.fx-triple #cs::before,.fx-triple #cs::after{content:'';position:absolute;inset:0;background:inherit;opacity:.4;pointer-events:none;animation:trp 2.6s ease-in-out infinite}
.fx-triple #cs::after{animation-direction:reverse;animation-delay:-1.3s}
.fx-triple #cs{animation:trpm 2.6s ease-in-out infinite}
@keyframes trp{0%,100%{transform:translateX(-22%)}50%{transform:translateX(22%) translateY(-2%)}}
@keyframes trpm{0%,100%{filter:blur(0)}50%{filter:blur(.35cqw)}}
.fx-blur #stage{animation:blr 1.2s}
.fx-heartbeat #stage{animation:lb 1.2s}
.fx-flash #flash{animation:fl .7s}
.fx-pink #flash{background:radial-gradient(#ff9ec8,#ff4f9a);animation:fl 1.1s}
.fx-heartbeat #flash{background:radial-gradient(#0000 35%,#e0103acc);animation:lat 1.3s}
.fx-dark #flash{background:#000;animation:fd 1.6s}


#hud{position:absolute;top:2.5cqw;right:2.5cqw;z-index:6;display:flex;gap:2cqw;padding-top:env(safe-area-inset-top)}

#dlg{position:absolute;left:0;right:0;bottom:0;z-index:5;min-height:50cqw;padding:17cqw 8cqw calc(9cqw + env(safe-area-inset-bottom));
 background:linear-gradient(to top,rgba(4,2,10,.95) 0%,rgba(4,2,10,.88) 42%,rgba(4,2,10,.55) 70%,#0000 100%);
 text-align:left;font-size:4.3cqw;line-height:1.65;font-weight:600;white-space:pre-wrap;-webkit-text-stroke:.3cqw #000a;text-shadow:0 .3cqw 1.4cqw #000;animation:up .6s backwards .3s;cursor:pointer}
#dlg.narr{font-style:italic;color:#e6def7}
#dlg.pop #vis{animation:pop .3s}
#dlg::after{content:'◆';position:absolute;right:8cqw;bottom:calc(5cqw + env(safe-area-inset-bottom));font-size:2.8cqw;color:var(--ac);-webkit-text-stroke:0;text-shadow:0 0 2cqw var(--ac);opacity:0}
#dlg.done::after{opacity:1;animation:bob .8s infinite alternate}
#nmw{display:block;margin-bottom:1.6cqw;font-family:var(--fd);font-style:normal;font-size:6.4cqw;font-weight:700;letter-spacing:.06em;line-height:1.2;color:var(--ac2);-webkit-text-stroke:0;text-shadow:0 0 2.6cqw color-mix(in srgb,currentColor 70%,transparent),0 .3cqw 1cqw #000;white-space:nowrap}
#nmw::after{content:'';display:block;width:46cqw;height:.22cqw;margin-top:1.2cqw;background:linear-gradient(90deg,currentColor,#0000);opacity:.7}
#nmw:empty{display:none}
#hid{opacity:0}
.cn{font-style:inherit;text-shadow:0 0 1.8cqw currentColor}

#opts{position:absolute;inset:0;z-index:4;display:none;flex-direction:column;justify-content:center;gap:3.4cqw;padding:0 3cqw;background:radial-gradient(90% 60% at 50% 45%,#0a0514aa,#0007)}
#opts.on,#opts.out{display:flex}
#opts.on{animation:fadein .3s both}
#opts.out{animation:fadeout .5s .15s both}
#opts .btn{padding:4cqw 12cqw;font-family:inherit;font-size:4.3cqw;font-weight:700;letter-spacing:.02em;line-height:1.4;animation:pop2 .5s cubic-bezier(.2,1.4,.4,1) backwards calc(var(--i)*110ms + 80ms)}
#opts .btn:hover{letter-spacing:.04em}
#opts.out .btn:not(.chosen){opacity:0;transform:scale(.9);transition:.3s}
#opts .btn.chosen{background:linear-gradient(90deg,#0000,color-mix(in srgb,var(--ac) 60%,#0a0514) 22%,color-mix(in srgb,var(--ac) 60%,#0a0514) 78%,#0000);--ln:#fff;text-shadow:0 0 2cqw #fff;animation:chosen .5s both}
.hp{position:absolute;left:50%;top:34%;z-index:7;font-family:var(--fd);font-size:8cqw;animation:hp 1.4s ease-out forwards;pointer-events:none;text-shadow:0 0 3cqw currentColor}
.hp.up{color:#ff7aa8}.hp.dn{color:#8fb4ff}
#toast{position:absolute;top:16cqw;left:50%;z-index:30;transform:translateX(-50%);padding:2.4cqw 12cqw;white-space:nowrap;background:linear-gradient(90deg,#0000,var(--shade) 25%,var(--shade) 75%,#0000);font-family:var(--fd);font-size:4cqw;letter-spacing:.1em;opacity:0;pointer-events:none}
#toast.go{animation:toast 1.6s}
.slot{display:flex;flex-direction:column;gap:1cqw;padding:3cqw 10cqw;font-family:inherit;letter-spacing:.02em}
.slot small{font-size:3cqw;opacity:.8;font-weight:500}
#sv-l{display:flex;flex-direction:column;gap:2.5cqw}
label{display:flex;flex-direction:column;gap:2cqw;font-size:4cqw}
input[type=range]{accent-color:var(--ac);height:6cqw}
#err{position:absolute;inset:auto 4cqw 4cqw;z-index:40;display:flex;flex-direction:column;gap:2.5cqw;padding:4cqw;background:#050508f2;border:.35cqw solid #fff;border-radius:2cqw;font-size:3.4cqw;line-height:1.5;text-align:center}
#err label.btn{align-items:center;font-size:4.2cqw}


#vid,#vph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000}
#vph{display:none;place-items:center;white-space:pre-line;word-break:break-all;padding:10cqw;text-align:center;font-size:4cqw;background:linear-gradient(135deg,#2a0a26,#0a1a30,#301018);background-size:300% 300%;animation:bgm 8s infinite alternate}
#vph.on{display:grid}
.ui{transition:opacity .4s}
.hideui .ui{opacity:0;pointer-events:none}
#etop{position:absolute;top:3cqw;left:3cqw;right:3cqw;z-index:3;display:flex;align-items:center;gap:2cqw;padding-top:env(safe-area-inset-top)}
#etop b{min-width:16cqw;text-align:center;font-size:4.4cqw}
.sp{flex:1}
#ebot{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;flex-direction:column;gap:2.4cqw;padding:16cqw 6cqw calc(6cqw + env(safe-area-inset-bottom));background:linear-gradient(to top,rgba(4,2,10,.9),rgba(4,2,10,.6) 60%,#0000)}
#etit{font-family:var(--fd);font-size:5cqw;text-align:left;letter-spacing:.06em;-webkit-text-stroke:0;text-shadow:0 0 2.5cqw var(--ac2),0 .3cqw 1cqw #000}
.bar{height:4.4cqw;border-radius:3cqw;background:#0009;box-shadow:inset 0 0 0 .26cqw #ffffff8c;overflow:hidden}
#en{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:0 50%;will-change:transform;background:linear-gradient(90deg,#ff5fa2,#ffd166,#fff);box-shadow:0 0 4cqw #ff5fa2}
.row2{display:flex;justify-content:space-between;font-size:3.6cqw}
.full .bar{--g:#ffd166;animation:glow 1s infinite alternate}
#s-end.fin .lp,#s-end:not(.fin) .fp{display:none!important}
.fp .btn{padding:3.6cqw 2cqw}

#ov.miss::after{display:none}
#game.dbg #ov.miss::after{display:grid;color:#fff8;font:600 3cqw Consolas,monospace;-webkit-text-stroke:0}
.svnm{width:100%;box-sizing:border-box;padding:3cqw 4cqw;margin-bottom:3cqw;border-radius:3cqw;border:.3cqw solid #ffffff55;background:#0a0612cc;color:#fff;font:600 4.4cqw var(--fd,inherit);text-align:center;outline:none}.svnm:focus{border-color:var(--ac,#ffc46b)}
.ask{display:flex;flex-direction:column;gap:2cqw;font-size:4cqw;margin-bottom:2cqw}.ask small{font-size:3cqw;opacity:.7}

.erow{display:flex;align-items:center;gap:3cqw}.erow #etit{flex:1}
#esw{font-size:3.4cqw;padding:2.4cqw 5cqw;letter-spacing:.08em}

#s-cum{background:#000;overflow:hidden}
#cumimg{position:absolute;inset:0;background:#000 center/cover no-repeat}
#cumimg.miss::after{display:none}
#game.dbg #cumimg.miss::after{display:grid;color:#fff8;font:600 3cqw Consolas,monospace;-webkit-text-stroke:0}

#cumcam{position:absolute;inset:-5%;animation:cumcam 9s ease-in-out infinite}
@keyframes cumcam{0%,100%{transform:scale(1) rotate(0)}25%{transform:scale(1.025) rotate(-.7deg)}50%{transform:scale(1.04) rotate(0)}75%{transform:scale(1.025) rotate(.7deg)}}
#cumfl{position:absolute;inset:0;z-index:2;background:#fff;opacity:0;pointer-events:none}
#cumfl.go{animation:cumflash .55s ease-out}
@keyframes cumflash{0%{opacity:1}100%{opacity:0}}
#cumimg.z0{transform:scale(1.04)}
#cumimg.z1{animation:cz1 .45s ease-out both}
#cumimg.z2{animation:cz2 1.2s ease-out both}
#cumimg.z3{animation:cz3 .3s ease-out both}

#s-cum.k1{--a:.9cqw;animation:shkF .07s linear infinite}
#s-cum.k2{--a:1.8cqw;animation:shkF .06s linear infinite}
#s-cum.k3{--a:3cqw;animation:shkF .05s linear infinite}
#s-cum.k0{animation:shkC 1.1s ease-in-out infinite}
#cumimg.zd{animation:czd 8s cubic-bezier(.12,.55,.25,1) both}
#cumimg.i0{animation:ci0 5s cubic-bezier(.25,.6,.35,1) both}
#cumimg.i0::before{content:'';position:absolute;inset:0;background:var(--x) center/cover no-repeat;opacity:0;animation:ci0x 5s ease-in-out both}
@keyframes ci0x{0%,35%{opacity:0}85%,100%{opacity:1}}
@keyframes ci0{0%{opacity:0;transform:scale(1.9);filter:blur(3.2cqw)}10%{opacity:1}100%{opacity:1;transform:scale(1);filter:blur(0)}}
#cumimg.i1{animation:ci1 4.2s ease-out both}
#cumimg.i2{animation:ci2 2.2s cubic-bezier(.2,.6,.3,1) both}
@keyframes ci1{0%{opacity:0;filter:blur(3cqw);transform:scale(1.06)}55%{opacity:1}100%{opacity:1;filter:blur(0);transform:scale(1)}}
@keyframes ci2{from{filter:blur(2.4cqw);transform:scale(1.12)}to{filter:blur(0);transform:scale(1)}}
@keyframes czd{from{transform:scale(1.85);filter:blur(2.6cqw)}to{transform:scale(1);filter:blur(0)}}
@keyframes cz1{from{transform:scale(1)}to{transform:scale(1.06)}}
@keyframes cz2{from{transform:scale(1.03)}to{transform:scale(1.11)}}
@keyframes cz3{from{transform:scale(1.05)}to{transform:scale(1.16)}}
@keyframes shkF{0%{transform:translate(calc(var(--a)*-1),calc(var(--a)*.5))}25%{transform:translate(var(--a),calc(var(--a)*-.6))}50%{transform:translate(calc(var(--a)*-.7),calc(var(--a)*-.5))}75%{transform:translate(calc(var(--a)*.8),calc(var(--a)*.6))}100%{transform:translate(calc(var(--a)*-1),calc(var(--a)*.5))}}
@keyframes shkL{25%{transform:translate(-.8cqw,.4cqw)}75%{transform:translate(.8cqw,-.4cqw)}}
@keyframes shkM{25%{transform:translate(-1.8cqw,1cqw)}75%{transform:translate(1.8cqw,-1cqw)}}
@keyframes shkS{20%{transform:translate(-3.5cqw,1.6cqw) rotate(-.6deg)}50%{transform:translate(3.2cqw,-1.8cqw) rotate(.5deg)}80%{transform:translate(-2cqw,-1cqw)}}
@keyframes shkC{25%{transform:translate(-.45cqw,.3cqw)}50%{transform:translate(.4cqw,-.25cqw)}75%{transform:translate(-.2cqw,-.35cqw)}}

#stage.cam-handheld #art{animation:handheld 8s ease-in-out infinite}
@keyframes handheld{0%,100%{transform:scale(1.03) translate(0,0) rotate(0)}25%{transform:scale(1.045) translate(-.7cqw,.45cqw) rotate(-.45deg)}50%{transform:scale(1.025) translate(.55cqw,-.35cqw) rotate(.35deg)}75%{transform:scale(1.05) translate(-.3cqw,-.55cqw) rotate(-.2deg)}}

#s-end #vid{animation:vidcam 9s ease-in-out infinite;will-change:transform;backface-visibility:hidden}
@keyframes vidcam{0%,100%{transform:scale(1.07) translate(0,0) rotate(0)}25%{transform:scale(1.11) translate(-1cqw,.6cqw) rotate(-1.1deg)}50%{transform:scale(1.14) translate(0,1cqw) rotate(0)}75%{transform:scale(1.11) translate(1cqw,.6cqw) rotate(1.1deg)}}
#s-end.calm .bar,#s-end.calm .row2{display:none}

.spd{display:flex;gap:1.6cqw}.spd .ib{width:9.5cqw;height:9.5cqw;font-family:var(--fd);font-size:4.2cqw;-webkit-text-stroke:0}

.vol span{display:flex;justify-content:space-between;align-items:baseline}.vol b{font-family:var(--fd);letter-spacing:.1em;font-size:4cqw}.vol em{font-style:normal;font-size:3.6cqw;opacity:.75}

#sv-l.cards{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:max-content;gap:2.6cqw;max-height:60cqh;overflow-y:auto;padding:1cqw}
.scard{position:relative;overflow:hidden;display:flex;flex-direction:column;text-align:left;border-radius:2.6cqw;background:#0a0612e6;box-shadow:inset 0 0 0 .26cqw #ffffff59,0 .8cqw 2.4cqw #000b;transition:transform .15s,box-shadow .25s;animation:pop2 .45s cubic-bezier(.2,1.4,.4,1) backwards calc(var(--i,0)*60ms + 100ms)}
.scard:hover,.scard.press{box-shadow:inset 0 0 0 .3cqw var(--ac),0 0 3.5cqw color-mix(in srgb,var(--ac) 50%,transparent)}.scard.press{transform:scale(.96)}
.scard:disabled{opacity:.35;pointer-events:none}
.scard .th{position:relative;flex:none;width:100%;aspect-ratio:4/3;background:radial-gradient(circle at 50% 30%,#2a1a3a,#0a0612);overflow:hidden}
.scard .th i{position:absolute;inset:0;background-repeat:no-repeat}
.scard .th .tb{background-size:cover;background-position:center}
.scard .th .tc{background-size:150% auto;background-position:50% 22%}
.scard .th .to{background-size:cover;background-position:center}
.scard .th.empty::after{content:'—';position:absolute;inset:0;display:grid;place-items:center;font-size:7cqw;opacity:.35}
.scard .tx{display:flex;flex-direction:column;gap:.6cqw;padding:1.8cqw 2.4cqw 2.2cqw;font-size:3.3cqw}
.scard .tx small{font-size:2.6cqw;font-weight:500;opacity:.75;-webkit-text-stroke:0;line-height:1.3}

#drop{position:absolute;left:58%;top:21.5%;width:3.6cqw;height:5.2cqw;display:none;opacity:0;pointer-events:none;
 background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 30'%3E%3Cpath d='M10 1C10 1 2 13 2 19a8 8 0 0 0 16 0C18 13 10 1 10 1z' fill='%23fff' stroke='%2385b8ff' stroke-width='1.6'/%3E%3Cpath d='M6 19a4 4 0 0 0 3 4' fill='none' stroke='%23cfe3ff' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 0 .6cqw #fff8)}
#chr.drunk #drop{display:block;animation:dropfade 2.8s ease-in-out infinite}
@keyframes dropfade{0%,100%{opacity:.15;translate:0 0}50%{opacity:.95;translate:0 .6cqw}}
#chr.drunk{animation:breath 4.5s ease-in-out infinite,drunk 3.4s ease-in-out infinite}
#chr.drunk.talk{animation:talk .55s ease-in-out infinite,drunk 3.4s ease-in-out infinite}
@keyframes drunk{0%,100%{rotate:-1.6deg;translate:-.7cqw 0}50%{rotate:1.6deg;translate:.7cqw .35cqw}}

#womb{position:absolute;left:50%;top:44.5%;width:4.4cqw;height:4cqw;margin-left:-2.2cqw;display:none;opacity:0;pointer-events:none;
 background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 22'%3E%3Cpath d='M12 21S1 14.2 1 7.2A5.6 5.6 0 0 1 12 4.6 5.6 5.6 0 0 1 23 7.2C23 14.2 12 21 12 21z' fill='%23ff8ac8' stroke='%23fff' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 0 1cqw #ff6fb5) drop-shadow(0 0 2.2cqw #ff6fb588)}
#chr.pregnant #womb{display:block;animation:womb 3.2s ease-in-out infinite}
@keyframes womb{0%,100%{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.05)}}

#cA{position:absolute;inset:0;transform-origin:62% 100%;transition:transform .55s cubic-bezier(.2,.9,.3,1),filter .55s}
#stage.side-on #cA{transform:translate(26%,-34%) scale(.1);filter:brightness(.6) saturate(.85)}
#sL{position:absolute;left:0;right:0;bottom:0;z-index:1;pointer-events:none;transform:translateX(-120%);transition:transform .55s cubic-bezier(.2,.9,.3,1);will-change:transform}
#sL.on{transform:translateX(0)}
#cs2{position:absolute;left:-4%;bottom:0;width:100%;height:100%;background:left bottom/auto 100% no-repeat}
#sL.goru{height:68%}#sL.gorran{height:97%}#sL.ogre{height:80%}#sL.ogre #cs2{background-size:contain;background-position:42% 100%}
#sL.swap #cs2{animation:swp .3s}

#ahud{position:absolute;top:2.5cqw;left:2.5cqw;z-index:6;display:flex;flex-direction:column;gap:1.6cqw;padding-top:env(safe-area-inset-top);pointer-events:none;-webkit-text-stroke:0;animation:up .5s backwards .2s}
.aff{position:relative;display:flex;align-items:center;gap:2cqw;padding:1.6cqw 3.4cqw 2.4cqw 1.8cqw;border-radius:5cqw;background:radial-gradient(circle at 20% 30%,#3b2552e6,#0a0612eb 75%);box-shadow:inset 0 0 0 .26cqw #ffffff59,0 .8cqw 2.4cqw #000b;overflow:hidden}
.aff .hrt{width:7.5cqw;height:7.5cqw;display:grid;place-items:center}
.aff .hrt svg{width:100%;height:100%;fill:#ff6fb5;stroke:#fff;stroke-width:1.4;filter:drop-shadow(0 0 1.2cqw #ff6fb5aa)}
.aff small{display:block;font-family:var(--fd);font-size:2.3cqw;letter-spacing:.18em;opacity:.75;line-height:1}
.aff b{display:block;font-family:var(--fd);font-size:5.4cqw;line-height:1.1;text-shadow:0 0 2cqw #ff6fb5}
.aff.up .hrt{animation:affup .7s}.aff.dn .hrt{animation:affdn .6s}
@keyframes affup{30%{transform:scale(1.45) rotate(-8deg)}60%{transform:scale(.92)}}
@keyframes affdn{25%{transform:translateX(-1cqw)}50%{transform:translateX(1cqw)}75%{transform:translateX(-.6cqw)}}
.who{display:flex;gap:1.6cqw}
.dr{display:flex;align-items:center;gap:1cqw;padding:1cqw 2.4cqw 1cqw 1.2cqw;border-radius:4cqw;background:#0a0612cc;box-shadow:inset 0 0 0 .22cqw #ffffff33;opacity:.4;filter:grayscale(1);transition:opacity .4s,filter .4s,box-shadow .4s}
.dr i{width:4.2cqw;height:4.2cqw;display:grid;place-items:center}.dr svg{width:100%;height:100%;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dr em{font-style:normal;font-family:var(--fd);font-size:2.8cqw;letter-spacing:.06em}
.dr.on{opacity:1;filter:none;box-shadow:inset 0 0 0 .26cqw #ffc46b,0 0 2.6cqw #ffb34788}
.dr.on svg{stroke:#ffd27a;fill:#ffb3472e}
.dr.on i{animation:tipsy 2.4s ease-in-out infinite}

.dr{transform-origin:0 50%;transition:opacity .4s,filter .4s,box-shadow .4s,transform .5s cubic-bezier(.3,1.5,.5,1)}
.dr.more{transform:scale(1.28);box-shadow:inset 0 0 0 .3cqw #ffe08a,0 0 4cqw #ffb347cc;z-index:1}
.dr.more svg{stroke:#fff1b8;fill:#ffc4577a}
.dr.more em{text-shadow:0 0 1.6cqw #ffcf6b}
@keyframes tipsy{0%,100%{transform:rotate(-12deg)}50%{transform:rotate(12deg) translateY(.3cqw)}}

#ffl{position:absolute;inset:0;z-index:3;pointer-events:none}
#ffl i{position:absolute;width:calc(var(--s)*3);height:calc(var(--s)*3);margin:calc(var(--s)*-1);border-radius:50%;background:radial-gradient(#fffbd0 0,#ffe37a 14%,#ffd85a55 32%,#ffcb3d00 62%);will-change:transform,opacity;
 animation:ffmove var(--d) ease-in-out infinite alternate,ffblink var(--b) ease-in-out infinite;animation-delay:var(--o),var(--o)}
@keyframes ffmove{0%{transform:translate(0,0)}33%{transform:translate(var(--x1),var(--y1))}66%{transform:translate(var(--x2),var(--y2))}100%{transform:translate(var(--x3),var(--y3))}}
@keyframes ffblink{0%,100%{opacity:.1}45%,60%{opacity:1}}

#card{z-index:55;background:radial-gradient(70% 50% at 50% 50%,#1a0a1a,#000);gap:3cqw;cursor:pointer}
#card small{font-family:var(--fd);font-size:3.6cqw;letter-spacing:.5em;color:var(--ac);-webkit-text-stroke:0;opacity:.85}
#card b{font-family:var(--fd);font-size:11cqw;letter-spacing:.08em;line-height:1.1;-webkit-text-stroke:0;text-shadow:0 0 4cqw var(--ac),0 .4cqw 1.4cqw #000;animation:logo 2.2s both}
#card .tap{margin-top:10cqw;font-size:3.4cqw;letter-spacing:.2em;opacity:.6;animation:fadein 1s 2.2s both,bob 1.2s 3.2s infinite alternate}

#gal-p{font-family:var(--fd);font-size:3.6cqw;letter-spacing:.1em;opacity:.8;margin-top:-2cqw}
#gal-l{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:max-content;align-content:start;gap:3.4cqw;max-height:62cqh;overflow-y:auto;padding:1.4cqw}
.gcard{position:relative;overflow:hidden;aspect-ratio:4/3;border-radius:3cqw;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:.6cqw;padding:3cqw;text-align:left;
 background:radial-gradient(circle at 50% 25%,#3b2552,#0a0612 75%) center/cover;box-shadow:inset 0 0 0 .26cqw #ffffff59,0 1cqw 3cqw #000b;transition:transform .15s,box-shadow .25s;animation:pop2 .45s cubic-bezier(.2,1.4,.4,1) backwards calc(var(--i,0)*70ms + 120ms)}
.gcard::after{content:'';position:absolute;inset:0;background:linear-gradient(#0000 35%,#05020bdd);pointer-events:none}
.gcard>*{position:relative;z-index:1}
.gcard .gn{font-family:var(--fd);font-size:2.8cqw;letter-spacing:.14em;color:var(--ac);-webkit-text-stroke:0}
.gcard b{font-family:var(--fd);font-size:4.6cqw;letter-spacing:.06em;line-height:1.15}
.gcard:hover,.gcard.press{box-shadow:inset 0 0 0 .3cqw var(--ac),0 0 4cqw color-mix(in srgb,var(--ac) 55%,transparent)}
.gcard.press{transform:scale(.95)}
.gcard.lock{cursor:default;filter:grayscale(1);background:repeating-linear-gradient(135deg,#0d0a14 0 2cqw,#120e1a 2cqw 4cqw)}
.gcard.lock b{letter-spacing:.2em;opacity:.55}
.gcard.pay{cursor:pointer;filter:none;box-shadow:inset 0 0 0 .3cqw #ff8fc4aa}.gcard.pay .lk{stroke:#ffb0dc}
.gcard .gpay{font-size:2.6cqw;line-height:1.25;color:#ffc2e0;font-weight:700}.gcard.pay b{display:none}
.gcard .lk{position:absolute;top:3cqw;right:3cqw;z-index:1;width:5cqw;height:5cqw;stroke:#fff9;fill:none;stroke-width:2;stroke-linecap:round}
.gcard.new{animation:pop2 .45s cubic-bezier(.2,1.4,.4,1) backwards calc(var(--i,0)*70ms + 120ms),glow 1.6s ease-in-out infinite alternate;--g:var(--ac)}

#blk{position:absolute;inset:0;z-index:60;background:#000;opacity:0;pointer-events:none;transition:opacity 1s ease-in-out}
#blk.on{opacity:1;pointer-events:auto}


#game.retro #bg,#game.retro #cs,#game.retro #cs2,#game.retro #ov{filter:contrast(1.07) saturate(.92) sepia(.12) brightness(1.07)}
#game.retro #art::before{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.13;background:radial-gradient(ellipse at 50% 42%,#fff2f8 0,#ffd6eaaa 30%,#0000 75%)}
#game.retro #art::after{content:'';position:absolute;inset:-20%;z-index:3;pointer-events:none;background:var(--grain) 0 0/160px 160px;opacity:.07;will-change:transform;animation:grain .6s steps(5) infinite}
@keyframes grain{20%{transform:translate(-7%,4%)}40%{transform:translate(5%,-6%)}60%{transform:translate(-3%,-8%)}80%{transform:translate(8%,6%)}}


#dbg{position:absolute;left:2cqw;top:2cqw;z-index:90;display:none;max-width:70cqw;margin:0;padding:2cqw 2.6cqw;background:#000c;border:1px solid #fff6;border-radius:1.5cqw;font:600 2.7cqw/1.45 Consolas,"Courier New",monospace;-webkit-text-stroke:0;letter-spacing:0;white-space:pre-wrap;word-break:break-all;pointer-events:none;color:#cfe}
#dbg.on{display:block}
#dbg-end{position:absolute;left:2cqw;bottom:2cqw;z-index:91;display:none;flex-wrap:wrap;gap:1.2cqw;max-width:96cqw;padding:1.6cqw;background:#000c;border:1px solid #fff6;border-radius:1.5cqw;font:600 2.6cqw Consolas,"Courier New",monospace;-webkit-text-stroke:0;color:#cfe}
#dbg-end.on{display:flex}
#dbg-end small{flex-basis:100%;font:inherit;opacity:.7}
#dbg-end button{font:inherit;color:#cfe;background:#123;border:1px solid #cfe8;border-radius:1cqw;padding:.8cqw 1.6cqw;cursor:pointer}
#dbg-end button:hover{background:#245}


@keyframes sin{from{opacity:0;transform:scale(1.04)}}
@keyframes sout{to{opacity:0;transform:scale(.97)}}
@keyframes bout{to{opacity:0;transform:translateX(-8cqw)}}
@keyframes up{from{opacity:0;transform:translateY(6cqw)}}
@keyframes pop{from{opacity:.6;transform:translateY(1cqw)}}
@keyframes pop2{from{opacity:0;transform:scale(.7) translateY(5cqw)}}
@keyframes chosen{40%{transform:scale(1.08)}}
@keyframes fadein{from{opacity:0}}
@keyframes fadeout{to{opacity:0}}
@keyframes shine{50%,100%{transform:translateX(130%)}}
@keyframes glow{from{filter:drop-shadow(0 0 .4cqw var(--g,#fff))}to{filter:drop-shadow(0 0 2.2cqw var(--g,#fff))}}
@keyframes rip{to{transform:translate(-50%,-50%) scale(320);opacity:0}}
@keyframes ring{0%{box-shadow:inset 0 0 3cqw #ffb0dc55,0 0 0 0 #fff8}100%{box-shadow:inset 0 0 3cqw #ffb0dc55,0 0 0 7cqw #fff0}}
@keyframes logo{from{opacity:0;transform:scale(.85);filter:blur(1cqw)}}
@keyframes kb{to{transform:scale(1.07) translate(-1.5cqw,-1cqw)}}
@keyframes breath{50%{transform:scale(1.008,1.018)}}
@keyframes talk{50%{transform:translateY(-.8cqw) scale(1.006,1.012)}}
@keyframes cin{from{opacity:0;transform:translateX(8cqw) scale(.97);filter:blur(1cqw)}}
@keyframes swp{40%{filter:brightness(1.6);transform:scale(1.02)}}
@keyframes cout{to{opacity:0;transform:translateX(-6cqw)}}
@keyframes fd{0%{opacity:0}40%,55%{opacity:1}100%{opacity:0}}
@keyframes fdin{from{opacity:1}}
@keyframes fl{20%{opacity:.9}100%{opacity:0}}
@keyframes shk{10%,50%,90%{transform:translate(-2.2cqw,1cqw)}30%,70%{transform:translate(2.2cqw,-1cqw)}}
@keyframes zm{40%{transform:scale(1.14)}}
@keyframes blr{30%,70%{filter:blur(1.6cqw)}}
@keyframes lb{10%,50%{transform:scale(1.04)}30%{transform:scale(1.01)}}
@keyframes lat{0%,40%,100%{opacity:0}10%,50%{opacity:1}25%{opacity:.3}}
@keyframes bob{to{transform:translateY(1cqw)}}
@keyframes hp{from{opacity:1;transform:translate(-50%,0)}to{opacity:0;transform:translate(-50%,-14cqw)}}
@keyframes toast{15%,80%{opacity:1}0%{transform:translate(-50%,-3cqw)}}
@keyframes bgm{to{background-position:100% 100%}}
@media (prefers-reduced-motion:reduce){#bg,.mbg,#chr,#game.retro #art::after{animation:none}}


.langs{display:flex;justify-content:center;gap:1.4cqw;width:88cqw}
.btn.lg{padding:1.8cqw 2.2cqw;font-family:inherit;font-size:3cqw;letter-spacing:0;opacity:.65;white-space:nowrap}
.btn.lg.on{opacity:1;box-shadow:inset 0 0 0 .4cqw var(--ac)}
.pnl .langs{width:88cqw}
:lang(ja){line-break:strict;word-break:normal;overflow-wrap:anywhere}


#s-fight{background:#000;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}
#fstage,#fshk{position:absolute;inset:0;transform-origin:50% 85%}
#fbg{position:absolute;inset:-8%;background:center/cover no-repeat;filter:brightness(.4) saturate(.85)}
#fshk::after{content:'';position:absolute;inset:-8%;background:radial-gradient(circle at 50% 45%,#0000 40%,#000c 100%);pointer-events:none}
#fog{position:absolute;left:-6%;right:-6%;bottom:17%;height:66%}
#fogi{position:absolute;inset:0;background:center bottom/contain no-repeat;transform-origin:50% 100%;will-change:transform}
#fogi.idle{animation:fIdle 1.4s ease-in-out infinite}
#fogi.wind{animation:fWind .45s ease-out both,fJit .08s linear .45s infinite}
#fogi.strike{animation:fStr .3s cubic-bezier(.2,.9,.3,1) both}
#fogi.open{animation:fOpen 1.35s ease-in-out both}
#fogi.hurt{animation:fHurt .4s ease-out both}
#fogi.ko{animation:fKO 1.5s cubic-bezier(.55,0,.75,1) both}
@keyframes fIdle{50%{transform:scale(1.015,.985) translateY(.4%)}}
@keyframes fWind{to{transform:scale(1.07) translateX(-3%) rotate(-3deg)}}
@keyframes fJit{0%,100%{transform:scale(1.07) translateX(-3%) rotate(-3deg)}50%{transform:scale(1.07) translateX(-2.3%) rotate(-2.2deg)}}
@keyframes fStr{0%{transform:scale(1.07) translateX(-3%) rotate(-3deg)}35%{transform:scale(1.45) translate(7%,9%) rotate(5deg);filter:blur(.5cqw)}100%{transform:scale(1.2) translate(3%,4%) rotate(2deg);filter:none}}
@keyframes fOpen{0%{transform:scale(1.2) translate(3%,4%) rotate(2deg)}30%{transform:scale(.97) translateX(-4%) rotate(-7deg)}60%{transform:translateX(3%) rotate(4deg)}100%{transform:none}}
@keyframes fHurt{0%,22%{filter:brightness(0) invert(1);transform:scale(.93) translateX(6%) rotate(6deg) skewX(-6deg)}40%{filter:none;transform:scale(.97) translateX(-2%) rotate(-3deg)}100%{transform:translateX(-1%) rotate(-2deg)}}
@keyframes fKO{0%{filter:brightness(0) invert(1);transform:scale(.94)}10%{filter:none;transform:rotate(7deg)}35%{transform:translateX(-3%) rotate(-9deg)}100%{transform:translate(-6%,22%) rotate(-74deg) scale(.92)}}
#fstage.tl{animation:fTl .5s cubic-bezier(.2,.9,.3,1)}#fstage.tr{animation:fTr .5s cubic-bezier(.2,.9,.3,1)}
@keyframes fTl{30%{transform:translateX(14%) rotate(-7deg) scale(1.04)}}
@keyframes fTr{30%{transform:translateX(-14%) rotate(7deg) scale(1.04)}}
#fshk.shk{--a:3.6cqw;animation:shkF .05s linear 8}#fshk.shs{--a:1.4cqw;animation:shkF .05s linear 4}
#fwarn{position:absolute;top:0;bottom:0;width:48%;opacity:0;pointer-events:none;transition:opacity .15s}
#fwarn.l{left:0;background:linear-gradient(90deg,#ff2a2a70,#0000)}#fwarn.r{right:0;background:linear-gradient(270deg,#ff2a2a70,#0000)}
#fwarn.on{opacity:1;animation:fPulse .22s ease-in-out infinite alternate}
@keyframes fPulse{to{opacity:.45}}
#fred{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(circle,#ff000022 30%,#c00c 100%)}
#fred.go{animation:fRed .7s ease-out}
@keyframes fRed{0%{opacity:1}100%{opacity:0}}
#fhit{position:absolute;left:50%;top:30%;width:34cqw;height:34cqw;margin:-17cqw;border-radius:50%;background:radial-gradient(circle,#fff 0 16%,#ffe9a0bb 30%,#0000 62%);opacity:0;pointer-events:none}
#fhit.go{animation:fHit .32s ease-out}
@keyframes fHit{0%{opacity:1;transform:scale(.3) rotate(0)}100%{opacity:0;transform:scale(1.7) rotate(40deg)}}
#fhud{position:absolute;top:5cqw;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:2cqw;pointer-events:none}
.fo{width:56%;display:flex;flex-direction:column;align-items:center;gap:1cqw}
.fo b{font-family:var(--fd);font-size:4.2cqw;letter-spacing:.2em;color:#a6dd6f;-webkit-text-stroke:0;text-shadow:0 0 2cqw #000,0 .3cqw .6cqw #000}
.fbar{width:100%;height:2.8cqw;border-radius:2cqw;background:#000a;box-shadow:inset 0 0 0 .3cqw #fff7;overflow:hidden}
.fbar i{display:block;height:100%;background:linear-gradient(90deg,#ff3b3b,#ffb03b);transform-origin:0 50%;transition:transform .35s cubic-bezier(.2,.9,.3,1)}
#flv{display:flex;gap:2.4cqw}
#flv i{font-style:normal;font-size:7.5cqw;line-height:1;color:#ff4f7b;text-shadow:0 0 2cqw #ff4f7b,0 .3cqw .6cqw #000}
#flv i::before{content:'♥'}
#flv i.lost{animation:fLost .6s both}
@keyframes fLost{35%{transform:scale(1.7)}100%{transform:scale(.8);opacity:.25;filter:grayscale(1)}}
#fskip{position:absolute;top:4cqw;right:3cqw;padding:1.6cqw 3cqw;border:none;border-radius:4cqw;font-family:var(--fd);font-size:2.8cqw;letter-spacing:.06em;color:#fff;background:linear-gradient(135deg,#ff5f8f,#a24bd6);box-shadow:inset 0 0 0 .25cqw #fff8,0 .6cqw 2cqw #0009}
#fmsg{position:absolute;left:0;right:0;top:38%;text-align:center;font-family:var(--fd);font-size:10cqw;letter-spacing:.08em;color:#fff;-webkit-text-stroke:.35cqw #000;text-shadow:0 0 3cqw #ff4a4a;opacity:0;pointer-events:none}
#fmsg.on{animation:fMsg 1s ease-out both}#fmsg.big{font-size:16cqw;animation-duration:1.7s}#fmsg.go{color:#ffe35a;text-shadow:0 0 3cqw #ffb300}#fmsg.hint{font-size:8cqw;color:#ffd0d0}
@keyframes fMsg{0%{opacity:0;transform:scale(2.2)}14%{opacity:1;transform:scale(1)}75%{opacity:1}100%{opacity:0;transform:translateY(-3cqw) scale(.96)}}
#fbtns{position:absolute;left:0;right:0;bottom:5cqw;display:flex;justify-content:space-between;align-items:flex-end;padding:0 5cqw}
.fb{width:24cqw;height:24cqw;border-radius:50%;border:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6cqw;font-family:var(--fd);font-size:3cqw;letter-spacing:.08em;color:#fff;background:radial-gradient(circle at 35% 30%,#4a3060,#140a1e);box-shadow:inset 0 0 0 .4cqw #ffffff66,0 1cqw 3cqw #000a;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.fb svg{width:9cqw;height:9cqw;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.fb.fp{width:31cqw;height:31cqw;margin-bottom:3cqw;background:radial-gradient(circle at 35% 30%,#b23a44,#3a0a12);font-size:3.6cqw}.fb.fp svg{width:13cqw;height:13cqw}
#s-fight.open .fb.fp{animation:fHot .35s ease-in-out infinite alternate}
@keyframes fHot{to{box-shadow:inset 0 0 0 .5cqw #ffe27a,0 0 7cqw #ffc533}}
.fb.pr{animation:fPr .16s!important}
@keyframes fPr{50%{transform:scale(.86)}}
#fask{position:absolute;inset:0;z-index:5;display:none;flex-direction:column;align-items:center;justify-content:center;gap:4cqw;padding:10cqw;text-align:center;background:radial-gradient(circle,#2a0008cc,#000e 80%)}
#fask.on{display:flex;animation:sin .5s both}
#fask p{font-size:5cqw;line-height:1.4;margin-bottom:3cqw}

.aff{transform-origin:20% 50%}
.aff .sparks{position:absolute;left:5.6cqw;top:50%;width:0;height:0;pointer-events:none;display:none}
.aff.max .sparks{display:block}
.sparks i{position:absolute;left:0;top:0;width:2.6cqw;height:2.6cqw;margin:-1.3cqw;border-radius:50%;background:radial-gradient(circle,#fff 0 25%,#ff6fb5 55%,#ff6fb500 72%);opacity:0;animation:spk 1.1s ease-out infinite}
.sparks i:nth-child(1){--a:-20deg}.sparks i:nth-child(2){--a:25deg;animation-delay:-.14s}.sparks i:nth-child(3){--a:70deg;animation-delay:-.28s}.sparks i:nth-child(4){--a:120deg;animation-delay:-.42s}
.sparks i:nth-child(5){--a:165deg;animation-delay:-.56s}.sparks i:nth-child(6){--a:210deg;animation-delay:-.7s}.sparks i:nth-child(7){--a:255deg;animation-delay:-.84s}.sparks i:nth-child(8){--a:300deg;animation-delay:-.98s}
@keyframes spk{0%{opacity:1;transform:rotate(var(--a)) translateX(2cqw) scale(1.1)}100%{opacity:0;transform:rotate(var(--a)) translateX(12cqw) scale(.2)}}
.aff.max{overflow:visible;animation:affBurst .42s ease-in-out infinite}
.aff.max .hrt{animation:affBeat .42s ease-in-out infinite}
.aff.max b{color:#fff;text-shadow:0 0 2cqw #ff2f8f,0 0 4.5cqw #ff6fb5}
@keyframes affBurst{0%,100%{transform:scale(1) rotate(0)}25%{transform:scale(1.07) rotate(-1.6deg) translateX(-.3cqw)}75%{transform:scale(1.1) rotate(1.6deg) translateX(.3cqw)}}
@keyframes affBeat{50%{transform:scale(1.4)}}


#opts .btn:has(.opt-pts){padding-top:5.6cqw}
.opt-pts{position:absolute;top:.8cqw;left:50%;translate:-50% 0;z-index:2;padding:.5cqw 1.6cqw;border-radius:3cqw;font-style:normal;font-family:var(--fd);font-size:2.6cqw;font-weight:700;letter-spacing:.04em;line-height:1.2;color:#fff;background:#3a2a48;box-shadow:inset 0 0 0 .22cqw #ffffff55,0 .4cqw 1cqw #0008;pointer-events:none}
.opt-pts.up{background:linear-gradient(135deg,#ff5fa2,#c64bd6);box-shadow:inset 0 0 0 .22cqw #ffffffaa,0 0 2cqw #ff5fa288}

#gtip{position:absolute;z-index:60;max-width:58cqw;padding:2.2cqw 3cqw;border-radius:2.6cqw;font-size:3.2cqw;line-height:1.4;text-align:left;color:#fff;background:#120a1ef2;box-shadow:inset 0 0 0 .25cqw var(--ac),0 1cqw 3cqw #000c;pointer-events:none;opacity:0;transform:translateY(1cqw);transition:opacity .15s,transform .15s}
#gtip.on{opacity:1;transform:none}
#gtip::before{content:'✦ ';color:var(--ac)}
.gcard.lock:not(.pay):hover{box-shadow:none}
