.ad-settings-button{border:0;background:transparent;color:inherit;text-decoration:underline;text-underline-offset:3px;font:inherit;cursor:pointer;padding:8px 0;min-height:44px}
.ad-privacy-dialog{box-sizing:border-box;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:26px;border:1px solid #46464c;border-radius:18px;background:#19191f;color:#f5f5f7;font:inherit;line-height:1.65}
.ad-privacy-dialog::backdrop{background:rgb(0 0 0 / .72)}
.ad-privacy-dialog h2{font-size:24px;line-height:1.25;margin:0 0 16px}.ad-privacy-dialog p{margin:14px 0}.ad-privacy-dialog a{color:#c7bcff;text-decoration:underline;text-underline-offset:3px}
.ad-privacy-actions,.ad-video-controls{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.ad-privacy-actions .button{white-space:normal;min-height:44px}.ad-privacy-dialog button:disabled{opacity:.5;cursor:default}
.ad-position{box-sizing:border-box;max-width:calc(100% - 32px);margin:24px auto;padding:16px;border:1px solid #36363e;border-radius:14px;background:#17171c;color:#ddd;overflow:hidden;width:fit-content}
.ad-position-label{font-size:13px;line-height:1.5;margin:0 0 10px;color:#c5c5d0}.ad-position-target{max-width:100%;margin:auto;overflow:hidden}.ad-position-status{font-size:12px;line-height:1.5;margin:10px 0 0;max-width:620px;color:#b9b9c7}
.ad-position:has(.ad-video-target){width:min(720px,calc(100% - 32px))}.ad-video-target{width:100%;aspect-ratio:16/9;position:relative;background:#000}.ad-position iframe{border:0;display:block}.ad-video-controls .button{min-height:44px}
.ad-position-target:not(.ad-video-target)>div{box-sizing:border-box;width:100%;height:100%;padding:8px!important;display:flex;align-items:center;justify-content:center;font-size:12px;line-height:1.25}
[data-play-expanded="true"] .ad-position{visibility:hidden}
@media(max-width:380px){.ad-position{padding:0;border:0;background:transparent;max-width:calc(100% - 16px)}.ad-privacy-dialog{padding:20px}.ad-privacy-actions{flex-direction:column}}

/* Safe-area space is measured by the dock and released on hide/disposal. */
:root{--joyhop-ad-safe-left:env(safe-area-inset-left,0px);--joyhop-ad-safe-right:env(safe-area-inset-right,0px);--joyhop-ad-safe-bottom:env(safe-area-inset-bottom,0px)}
.ad-position.ad-fixed-bottom{position:fixed;z-index:1300;inset:auto 0 0;width:100%;max-width:none;margin:0;border:0;border-top:1px solid #ffffff24;border-radius:0;background:#17171cf5;padding:4px var(--joyhop-ad-safe-right) calc(6px + var(--joyhop-ad-safe-bottom)) var(--joyhop-ad-safe-left);box-sizing:border-box;backdrop-filter:blur(12px)}
.ad-fixed-bottom .ad-position-label{text-align:center;font-size:10px;line-height:14px;margin:0 0 3px;color:#c5c5d0}
.ad-fixed-bottom .ad-position-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.ad-bottom-spacer{width:100%;pointer-events:none;flex-shrink:0}
body .mobile-bottom-nav{bottom:calc(var(--joyhop-ad-bottom-space,0px) + max(10px,env(safe-area-inset-bottom,0px)))}
body .game-detail .play-panel[data-play-mode=page],body .game-detail .play-panel:fullscreen{padding-bottom:var(--joyhop-ad-panel-space,0px)}
.play-panel .game-exit{bottom:calc(var(--joyhop-ad-panel-space,0px) + max(16px,env(safe-area-inset-bottom,0px)))}
[data-play-expanded="true"] .ad-position.ad-fixed-bottom{visibility:visible}
