
.request-controls{position:fixed;right:max(16px,calc((100vw - 720px)/2 + 18px));bottom:max(20px,env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;gap:8px;font:14px/1.4 'Noto Sans KR',sans-serif;}
.request-canvas .request-controls [data-request-effects-toggle],.request-controls .request-music button{position:static!important;inset:auto!important;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;width:auto;margin:0!important;padding:10px 14px;border:1px solid #ffffff70;border-radius:30px;color:#fff;background:#25352ee8;box-shadow:0 3px 18px #0002;backdrop-filter:blur(12px);font:500 14px/1.4 'Noto Sans KR',sans-serif;white-space:nowrap;cursor:pointer;}
.request-controls .request-music{position:static;font:inherit;}
.request-canvas .request-controls [data-request-effects-toggle]{color:#76573b;background:#fff8e9f5;border-color:#dbc9af;box-shadow:0 3px 18px #614d2820;}
.request-canvas .request-controls [data-request-effects-toggle]:hover{background:#fff0d4;}
.request-controls .request-music button{color:#fff;background:#225e55f5;border-color:#8bb5a9;}
.request-controls .request-music button:hover{background:#2c7568;}
.request-controls .request-music.is-playing button{background:#226b5d;}
.request-controls [hidden],.request-music[hidden],.request-editor-page:not(.request-editor-preview) .request-controls,.request-preview-cover .request-controls{display:none!important;}
.request-controls button:focus-visible{outline:3px solid #81b6a4;outline-offset:3px;}
.request-music svg{width:18px;height:18px;}
.request-music-bars{display:flex;align-items:center;justify-content:center;gap:3px;height:18px;}
.request-music-bars i{display:block;width:3px;height:14px;border-radius:3px;background:currentColor;opacity:.75;transform:scaleY(.35);transform-origin:center;transition:transform .3s ease,opacity .3s ease;}
.request-music-bars i:nth-child(2){transform:scaleY(.65);}
.request-music-bars i:nth-child(3){transform:scaleY(.45);}
.request-music.is-playing .request-music-bars i{opacity:1;animation-iteration-count:infinite!important;}
.request-music.is-playing .request-music-bars i:nth-child(1){animation:request-music-wave-1 1.6s ease-in-out infinite;}
.request-music.is-playing .request-music-bars i:nth-child(2){animation:request-music-wave-2 1.35s ease-in-out infinite;}
.request-music.is-playing .request-music-bars i:nth-child(3){animation:request-music-wave-3 1.75s ease-in-out infinite;}
.request-music.is-playing svg{transform-origin:50% 65%;animation:request-music-note 1.8s ease-in-out infinite;}

@keyframes request-music-wave-1{
0%,100%{transform:translateY(1px) scaleY(.35);}
18%{transform:translateY(-1px) scaleY(.9);}
38%{transform:translateY(1px) scaleY(.5);}
62%{transform:translateY(-1px) scaleY(.75);}
82%{transform:translateY(1px) scaleY(.25);}
}
@keyframes request-music-wave-2{
0%,100%{transform:translateY(0) scaleY(.8);}
22%{transform:translateY(1px) scaleY(.35);}
45%{transform:translateY(-1px) scaleY(1);}
68%{transform:translateY(1px) scaleY(.45);}
85%{transform:translateY(-1px) scaleY(.7);}
}
@keyframes request-music-wave-3{
0%,100%{transform:translateY(0) scaleY(.45);}
20%{transform:translateY(-1px) scaleY(.7);}
42%{transform:translateY(1px) scaleY(.25);}
65%{transform:translateY(-1px) scaleY(.95);}
85%{transform:translateY(1px) scaleY(.4);}
}
@keyframes request-music-note{
0%,100%{transform:rotate(-7deg) translateY(1px);}
50%{transform:rotate(7deg) translateY(-2px);}
}

@media(prefers-reduced-motion:reduce){
.request-music.is-playing .request-music-bars i{animation:none;}
.request-music.is-playing svg{animation:none;}
}

@media print{
.request-controls{display:none!important;}
}
